/* PV8 client interface — adapted from the 2026-08-12 Modernist design export.
   The application keeps its existing semantic classes so the assessment and
   mapping code remains independent from this presentation layer. */

:root {
  color-scheme: light;
  --surface-0: #ffffff;
  --surface-1: #f6f5f4;
  --border: #aaa6a3;
  --text-primary: #201e1d;
  --text-secondary: #605d5d;
  --text-muted: #7d7979;
  --series-1: #ec3013;
  --series-2: #e15b47;
  --series-3: #ec3013;
  --series-4: #ae1800;
  --good: #177245;
  --warning: #a85d00;
  --serious: #ae1800;
  --grid: #d7d3d3;
  --pv8-accent-soft: #fff2ef;
  --pv8-ink-soft: #eae9e9;
  --pv8-divider: color-mix(in srgb, #201e1d 40%, transparent);
  --pv8-sans: "Instrument Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  /* Compact labels use the same type family as the rest of the interface.
     Keep the legacy tokens so older module markup inherits it consistently. */
  --pv8-caption: var(--pv8-sans);
  --pv8-mono: var(--pv8-sans);
  --evidence-evidenced: #177245;
  --evidence-indicative: #9b5c0b;
  --evidence-gap: #a93624;
  --pv8-radius-sm: 8px;
  --pv8-radius-md: 12px;
  --pv8-shadow-float: 0 18px 52px rgba(32,30,29,.16);
}

/* Professional comfort layer: one vocabulary for evidence, typography,
   motion and transient surfaces across every specialist module. */
.pv8-library {
  --pv8-step--1: clamp(.74rem,.72rem + .08vw,.8rem);
  --pv8-step-0: clamp(.86rem,.82rem + .12vw,.94rem);
  --pv8-step-1: clamp(1.05rem,.99rem + .2vw,1.18rem);
  --pv8-step-2: clamp(1.3rem,1.19rem + .36vw,1.55rem);
  --pv8-step-3: clamp(1.68rem,1.46rem + .65vw,2.08rem);
  font-size:var(--pv8-step-0);
  line-height:1.56;
}
.pv8-library h1 { font-size:var(--pv8-step-3); line-height:1.08; letter-spacing:-.035em; }
.pv8-library h2 { font-size:var(--pv8-step-2); line-height:1.2; letter-spacing:-.02em; }
.pv8-library h3 { font-size:var(--pv8-step-1); line-height:1.3; }
.pv8-library table,.pv8-library .metric,.pv8-library .summary-cell b,
.pv8-library input[type="number"],.pv8-library [data-number] {
  font-variant-numeric:tabular-nums lining-nums;
}
.evidence-state { align-items:center; display:inline-flex; gap:6px; font-size:11px;
  font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.evidence-state::before { border-radius:50%; content:""; height:7px; width:7px; }
.evidence-state.evidenced { color:var(--evidence-evidenced); }
.evidence-state.evidenced::before { background:var(--evidence-evidenced); }
.evidence-state.indicative { color:var(--evidence-indicative); }
.evidence-state.indicative::before { background:var(--evidence-indicative); }
.evidence-state.gap { color:var(--evidence-gap); }
.evidence-state.gap::before { background:var(--evidence-gap); }

.asset[role="button"]:focus-visible { border-color:var(--series-1);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--series-1) 18%,transparent); outline:0; }

.pv8-command-backdrop { align-items:flex-start; background:rgba(20,19,18,.28);
  display:flex; inset:0; justify-content:center; padding:9vh 18px 18px;
  position:fixed; z-index:1900; }
.pv8-command-palette { background:var(--surface-1); border:1px solid var(--border);
  border-radius:16px; box-shadow:var(--pv8-shadow-float); max-width:680px;
  overflow:hidden; width:100%; }
.pv8-command-search { align-items:center; border-bottom:1px solid var(--border);
  display:flex; gap:10px; padding:12px 15px; }
.pv8-command-search input { background:transparent; border:0; color:var(--text-primary);
  flex:1; font-size:16px; outline:0; padding:7px 0; }
.pv8-command-search kbd { background:var(--surface-0); border:1px solid var(--border);
  border-radius:6px; color:var(--text-muted); font-size:10px; padding:2px 6px; }
.pv8-command-results { max-height:min(58vh,520px); overflow:auto; padding:7px; }
.pv8-command-item { align-items:center; background:transparent; border:0; border-radius:9px;
  color:var(--text-primary); cursor:pointer; display:flex; gap:12px; padding:10px 11px;
  text-align:left; width:100%; }
.pv8-command-item:hover,.pv8-command-item.active { background:var(--pv8-accent-soft); }
/* Hint and empty-state text sit on the same surface as the item and must
   meet WCAG AA at 11 px; --text-muted is too pale on white (3.56:1). Use
   the darker secondary token, which the dark-mode override still keeps
   distinct from the primary label. */
.pv8-command-item span { color:var(--text-secondary); font-size:11px; margin-left:auto; }
.pv8-command-empty { color:var(--text-secondary); padding:20px; text-align:center; }
.pv8-command-close { align-items:center; background:transparent; border:1px solid var(--border);
  border-radius:8px; color:var(--text-secondary); cursor:pointer; display:inline-flex;
  flex:0 0 auto; justify-content:center; min-height:34px; padding:4px 9px; }
.pv8-shortcut-palette { max-width:540px; }
.pv8-shortcut-head { align-items:flex-start; border-bottom:1px solid var(--border);
  display:flex; gap:16px; justify-content:space-between; padding:16px 18px 13px; }
.pv8-shortcut-head h2 { color:var(--text-primary); font-size:17px; margin:0; }
.pv8-shortcut-head p { color:var(--text-muted); font-size:12px; margin:3px 0 0; max-width:430px; }
.pv8-shortcut-list { display:grid; padding:9px 18px 15px; }
.pv8-shortcut-list > div { align-items:center; border-top:1px solid var(--grid);
  display:flex; gap:20px; justify-content:space-between; padding:9px 0; }
.pv8-shortcut-list > div:first-child { border-top:0; }
.pv8-shortcut-list kbd { color:var(--text-primary); font:650 12px var(--pv8-mono,monospace); }
.pv8-shortcut-list span { color:var(--text-secondary); font-size:12px; text-align:right; }

.pv8-getting-started { background:color-mix(in srgb,var(--surface-1) 96%,transparent);
  border:1px solid var(--border); border-radius:14px; bottom:18px;
  box-shadow:0 12px 34px rgba(32,30,29,.12); max-width:340px; padding:12px 13px;
  position:fixed; right:18px; z-index:850; }
.pv8-getting-started.collapsed .pv8-checklist-body { display:none; }
.pv8-checklist-head { align-items:center; display:flex; gap:9px; }
.pv8-checklist-head button { background:transparent; border:0; color:var(--text-muted);
  cursor:pointer; padding:3px 5px; }
.pv8-checklist-title { flex:1; font-size:12.5px; font-weight:700; }
.pv8-checklist-progress { color:var(--text-muted); font-size:11px; }
.pv8-checklist-body { border-top:1px solid var(--border); margin-top:9px; padding-top:9px; }
.pv8-checklist-body > p { color:var(--text-secondary); font-size:11.5px; margin:0 0 7px; }
.pv8-checklist-item { align-items:flex-start; color:var(--text-secondary); display:flex;
  font-size:12px; gap:8px; margin:7px 0; }
.pv8-checklist-item i { align-items:center; border:1px solid var(--border); border-radius:50%;
  display:flex; flex:0 0 17px; font-size:10px; font-style:normal; height:17px;
  justify-content:center; margin-top:1px; }
.pv8-checklist-item.done { color:var(--text-muted); text-decoration:line-through; }
.pv8-checklist-item.done i { background:var(--evidence-evidenced); border-color:var(--evidence-evidenced); color:#fff; }

.pv8-context-coach { align-items:flex-start; background:color-mix(in srgb,var(--series-1) 5%,var(--surface-1));
  border:1px solid color-mix(in srgb,var(--series-1) 28%,var(--border)); border-radius:12px;
  display:flex; gap:12px; margin:0 0 12px; padding:12px 14px; }
.pv8-context-coach .coach-copy { flex:1; }
.pv8-context-coach b { display:block; font-size:13px; }
.pv8-context-coach p { color:var(--text-secondary); font-size:12px; margin:3px 0 0; }
.pv8-context-coach button { background:transparent; border:0; color:var(--text-muted); cursor:pointer; }
.pv8-role-card { background:var(--surface-1); border:1px solid var(--border); border-radius:14px;
  box-shadow:var(--pv8-shadow-float); inset:auto 18px 18px auto; max-width:520px;
  padding:18px; position:fixed; width:calc(100vw - 36px); z-index:1000; }
.pv8-role-options,.pv8-role-modules { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0; }
.pv8-role-card label { background:var(--surface-0); border:1px solid var(--border);
  border-radius:999px; cursor:pointer; font-size:12px; padding:7px 10px; }
.pv8-role-card label:has(input:checked) { background:var(--pv8-accent-soft); border-color:var(--series-1); }
.pv8-role-card input { margin-right:5px; }

.pv8-ghost-preview { border:1px dashed color-mix(in srgb,var(--border) 84%,transparent);
  border-radius:14px; margin:14px 0; opacity:.8; padding:15px; }
.pv8-ghost-metrics { display:grid; gap:9px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.pv8-ghost-metrics span { background:var(--surface-0); border:1px solid var(--border); border-radius:9px;
  display:grid; gap:3px; min-height:62px; padding:12px; }
.pv8-ghost-metrics b { font-size:12px; }
.pv8-ghost-metrics small { color:var(--text-muted); font-size:11px; line-height:1.35; }

.pv8-progress-layout { align-items:center; display:grid; gap:14px;
  grid-template-columns:58px minmax(0,1fr) auto; width:100%; }
.pv8-progress-ring { --progress:8; align-items:center; background:
  conic-gradient(var(--series-1) calc(var(--progress) * 1%),var(--grid) 0);
  border-radius:50%; display:flex; height:52px; justify-content:center; position:relative; width:52px; }
.pv8-progress-ring::before { background:var(--surface-1); border-radius:50%; content:"";
  height:40px; position:absolute; width:40px; }
.pv8-progress-ring b { color:var(--text-primary); font-size:10px; position:relative; }
.pv8-progress-stage { color:var(--text-muted); font-size:11px; margin-top:2px; }
.pv8-progress-steps { display:flex; flex-wrap:wrap; gap:5px 12px; margin-top:6px; }
.pv8-progress-steps span { color:var(--text-muted); font-size:10.5px; }
.pv8-progress-steps span.active { color:var(--text-primary); font-weight:650; }
.pv8-progress-steps span.done { color:var(--evidence-evidenced); }

.pv8-skeleton { display:grid; gap:8px; padding:8px 0; }
.pv8-skeleton span { animation:pv8-skeleton-pulse 1.25s ease-in-out infinite alternate;
  background:linear-gradient(90deg,var(--surface-0),var(--grid),var(--surface-0));
  background-size:220% 100%; border-radius:7px; height:13px; }
.pv8-skeleton span:nth-child(2) { width:78%; }.pv8-skeleton span:nth-child(3) { width:58%; }
@keyframes pv8-skeleton-pulse { to { background-position:100% 0; opacity:.66; } }
.pv8-result-settling { opacity:0; transform:translateY(7px); }
.pv8-result-ready { opacity:1; transform:none; transition:opacity .32s ease,transform .32s ease; }

.pv8-confidence-header { align-items:flex-start; background:var(--surface-0);
  border:1px solid var(--border); border-radius:12px; display:flex; gap:12px;
  justify-content:space-between; margin:0 0 13px; padding:11px 13px; }
.pv8-confidence-header p { color:var(--text-secondary); font-size:11.5px; margin:2px 0 0; }
.pv8-confidence-badge { border:1px solid currentColor; border-radius:999px; font-size:10.5px;
  font-weight:750; letter-spacing:.05em; padding:5px 9px; text-transform:uppercase; white-space:nowrap; }
.pv8-confidence-badge.evidenced { color:var(--evidence-evidenced); }
.pv8-confidence-badge.indicative { color:var(--evidence-indicative); }
.pv8-confidence-badge.screening { color:var(--evidence-gap); }

[data-provenance-preview] { position:relative; }
[data-provenance-preview]:hover::after,[data-provenance-preview]:focus-within::after {
  background:#242220; border-radius:8px; bottom:calc(100% + 7px); color:#fff;
  content:attr(data-provenance-preview); font-size:11px; font-weight:400; left:12px;
  line-height:1.4; max-width:360px; padding:8px 10px; pointer-events:none;
  position:absolute; text-transform:none; white-space:normal; width:max-content; z-index:800; }
.pv8-save-state { align-items:center; background:color-mix(in srgb,var(--surface-1) 94%,transparent);
  border:1px solid var(--border); border-radius:999px; bottom:18px; color:var(--text-muted);
  display:flex; font-size:10.5px; gap:6px; left:18px; padding:6px 9px; position:fixed; z-index:780; }
.pv8-save-state::before { background:var(--evidence-evidenced); border-radius:50%; content:""; height:6px; width:6px; }
.pv8-save-state.saving::before { animation:pv8-save-pulse .8s ease-in-out infinite alternate; background:var(--evidence-indicative); }
.pv8-save-state.error::before { background:var(--evidence-gap); }
@keyframes pv8-save-pulse { to { opacity:.25; } }

@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) .pv8-library .external-identity-modal,
  :root:not([data-theme="light"]) .pv8-library #shareModal > div,
  :root:not([data-theme="light"]) .pv8-library #commentsModal > div,
  :root:not([data-theme="light"]) .pv8-library #pv8ChatPanel,
  :root:not([data-theme="light"]) .pv8-library .output-action-column,
  :root:not([data-theme="light"]) .pv8-library .connectivity-decision-card,
  :root:not([data-theme="light"]) .pv8-library details.connectivity-detail {
    background:var(--surface-1) !important; color:var(--text-primary) !important;
  }
  :root:not([data-theme="light"]) .pv8-library input,
  :root:not([data-theme="light"]) .pv8-library select,
  :root:not([data-theme="light"]) .pv8-library textarea {
    background:var(--surface-0) !important; color:var(--text-primary) !important;
  }
}
:root[data-theme="dark"] .pv8-library .external-identity-modal,
:root[data-theme="dark"] .pv8-library #shareModal > div,
:root[data-theme="dark"] .pv8-library #commentsModal > div,
:root[data-theme="dark"] .pv8-library #pv8ChatPanel,
:root[data-theme="dark"] .pv8-library .output-action-column,
:root[data-theme="dark"] .pv8-library .connectivity-decision-card,
:root[data-theme="dark"] .pv8-library details.connectivity-detail {
  background:var(--surface-1) !important; color:var(--text-primary) !important;
}
:root[data-theme="dark"] .pv8-library input,
:root[data-theme="dark"] .pv8-library select,
:root[data-theme="dark"] .pv8-library textarea,
:root[data-theme="dark"] .pv8-library .output-action-column > a,
:root[data-theme="dark"] .pv8-library .output-action-column > button {
  background:var(--surface-0) !important; color:var(--text-primary) !important;
}
@media (prefers-reduced-motion:reduce) {
  .pv8-skeleton span,.pv8-save-state.saving::before { animation:none !important; }
  .pv8-result-ready { transition:none; }
}
@media (max-width:700px) {
  .pv8-getting-started { bottom:10px; left:10px; max-width:none; right:10px; }
  .pv8-progress-layout { grid-template-columns:48px minmax(0,1fr); }
  .pv8-progress-layout .journey-run-cancel { grid-column:1/-1; }
  .pv8-ghost-metrics { grid-template-columns:1fr; }
}

/* MDC fibre layer: decision first, evidence on demand. */
.pv8-library .connectivity-path {
  align-items:center; background:var(--surface-1); border-left:4px solid var(--series-3);
  display:flex; flex-wrap:wrap; gap:7px; margin:8px 0 12px; padding:10px 13px;
}
.pv8-library .connectivity-path span {
  color:var(--text-muted); font:650 10px/1.2 var(--pv8-mono); letter-spacing:.025em;
  text-transform:uppercase;
}
.pv8-library .connectivity-path span.current { color:var(--series-3); }
.pv8-library .connectivity-path i { color:var(--text-muted); font-style:normal; }
.pv8-library .connectivity-decision-grid {
  display:grid; gap:9px; grid-template-columns:repeat(auto-fit,minmax(205px,1fr));
  margin:8px 0 12px;
}
.pv8-library .connectivity-decision-card {
  background:#fff; border:1px solid var(--grid); border-radius:8px; min-height:128px;
  padding:12px 13px;
}
.pv8-library .connectivity-decision-card.primary { border-left:4px solid var(--series-3); }
.pv8-library .connectivity-decision-card .eyebrow {
  color:var(--text-muted); font:650 10px/1.2 var(--pv8-caption); letter-spacing:.035em;
  text-transform:uppercase;
}
.pv8-library .connectivity-decision-card .status {
  color:var(--series-3); display:block; font:700 10px/1.25 var(--pv8-mono);
  margin:6px 0 3px; overflow-wrap:anywhere; text-transform:uppercase;
}
.pv8-library .connectivity-decision-card b { display:block; font-size:15px; line-height:1.25; }
.pv8-library .connectivity-decision-card p {
  color:var(--text-secondary); font-size:11.5px; line-height:1.42; margin:6px 0 0;
}
.pv8-library .connectivity-next-action {
  align-items:center; background:#fffaf0; border:1px solid #ead9b2; display:flex;
  flex-wrap:wrap; gap:8px; justify-content:space-between; margin:10px 0; padding:10px 12px;
}
.pv8-library .connectivity-next-action p { font-size:12px; margin:0; }
.pv8-library details.connectivity-detail {
  background:#fff; border:1px solid var(--grid); border-radius:7px; margin:8px 0;
  padding:0;
}
.pv8-library details.connectivity-detail > summary {
  align-items:center; cursor:pointer; display:flex; gap:12px; justify-content:space-between;
  list-style:none; padding:11px 13px;
}
.pv8-library details.connectivity-detail > summary::-webkit-details-marker { display:none; }
.pv8-library details.connectivity-detail > summary::after { color:var(--series-3); content:"+"; font-size:18px; }
.pv8-library details.connectivity-detail[open] > summary::after { content:"−"; }
.pv8-library details.connectivity-detail > summary small {
  color:var(--text-muted); display:block; font-size:11px; font-weight:400; margin-top:2px;
}
.pv8-library .connectivity-detail-body { border-top:1px solid var(--grid); padding:11px 13px 13px; }
.pv8-library .connectivity-detail table { font-size:11.5px; margin:0; width:100%; }
.pv8-library .connectivity-detail th { font-size:9px; letter-spacing:.065em; text-transform:uppercase; }
.pv8-library .connectivity-source-status { font:650 9px/1.2 var(--pv8-mono); white-space:nowrap; }
.pv8-library .connectivity-source-status.active { color:var(--series-3); }
.pv8-library .connectivity-source-status.gated { color:var(--warning); }
@media (max-width:700px) {
  .pv8-library .connectivity-decision-grid { grid-template-columns:1fr; }
  .pv8-library .connectivity-next-action { align-items:flex-start; flex-direction:column; }
}

html { background: #fff; }
body { font-family: var(--pv8-sans); }
a { color: var(--series-1); text-underline-offset: 3px; }
a:hover { color: #ae1800; }
button, input, select, textarea { font: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible,
select:focus-visible, summary:focus-visible {
  outline: 2px solid var(--series-1);
  outline-offset: 2px;
}

.pv8-brand { display:flex; align-items:baseline; gap:18px; }
.pv8-brand :is(h1,.pv8-wordmark) {
  font-size:21px;
  font-weight:800;
  letter-spacing:-.04em;
  white-space:nowrap;
}
.pv8-brand :is(h1,.pv8-wordmark) span { color:var(--series-1); }
.pv8-tagline {
  border-left:2px solid var(--pv8-divider);
  color:var(--text-secondary);
  font-size:10px;
  letter-spacing:.035em;
  padding-left:18px;
  text-transform:uppercase;
}
.pv8-nav { display:flex; align-items:center; gap:18px; margin-left:auto; }
.pv8-nav a { color:var(--text-primary); font-size:13px; text-decoration:none; }
.pv8-nav a[aria-current="page"] { color:var(--series-1); }

/* Assessment / asset-library workspace. */
.pv8-library { background:#fff; padding:0; min-width:320px; }
.pv8-library > header {
  align-items:center;
  border-bottom:2px solid var(--pv8-divider);
  display:flex;
  gap:24px;
  margin:0;
  min-height:64px;
  padding:12px 22px;
}
.sidebar-toggle {
  align-items:center;
  background:transparent;
  border:0;
  color:var(--text-secondary);
  cursor:pointer;
  display:inline-flex;
  flex:0 0 auto;
  height:24px;
  justify-content:center;
  padding:3px;
  width:24px;
}
.sidebar-toggle svg { fill:none; stroke:currentColor; stroke-width:1.7; }
.sidebar-toggle:hover { background:var(--pv8-accent-soft); color:var(--series-1); }
.sidebar-toggle.collapsed svg path { stroke:var(--series-1); }
.pv8-library .header-action { font-size:12px; text-decoration:none; white-space:nowrap; }
.summary-action-row .libbtn { white-space:nowrap; }
.pv8-library .header-action.secondary { color:var(--text-secondary); }

.asset-summary {
  border-bottom:2px solid var(--pv8-divider);
  display:grid;
  /* auto-fit: empty tracks collapse, so the cells always fill the row —
     a fixed 6-track template once crammed 4 cells into the left two-thirds */
  grid-template-columns:minmax(210px,1.35fr) repeat(auto-fit,minmax(150px,1fr));
}
.summary-cell {
  background:#fff;
  border:0;
  border-left:1px solid var(--pv8-divider);
  color:var(--text-primary);
  min-width:0;
  padding:12px 18px;
  text-align:left;
}
.summary-cell:first-child { border-left:0; }
button.summary-cell { cursor:pointer; text-align:left; font:inherit; }
button.summary-cell:hover { background:var(--pv8-accent-soft); }
.summary-actions .summary-action-row { display:flex; gap:6px; margin-top:3px; }
.summary-actions .summary-action-row .libbtn { margin-left:0; padding:6px 11px; }
.summary-cell span {
  color:var(--text-secondary);
  display:block;
  font-size:9px;
  letter-spacing:.035em;
  margin-bottom:3px;
  text-transform:uppercase;
}
.summary-cell b {
  display:block;
  font-family:var(--pv8-mono);
  font-size:16px;
  font-weight:600;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.summary-cell:first-child b { font-family:var(--pv8-sans); }
/* header cells with explicit secondary actions (change asset / open profile /
   last runs / saved outputs) */
.summary-cell-links { display:flex; gap:12px; margin-top:4px; }
.summary-cell-links a {
  color:var(--series-1);
  font-size:11px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}
.summary-cell-links a:hover { text-decoration:underline; }
#summaryRecentCell { position:relative; }
#recentMenu {
  background:#fff;
  border:1px solid var(--pv8-divider);
  border-radius:10px;
  box-shadow:0 10px 28px rgba(15,42,35,.16);
  left:10px;
  max-height:330px;
  min-width:290px;
  overflow-y:auto;
  padding:4px;
  position:absolute;
  top:calc(100% - 6px);
  z-index:320;
}
#recentMenu a {
  border-radius:8px;
  color:var(--text-primary);
  display:block;
  padding:8px 10px;
  text-decoration:none;
}
#recentMenu a:hover { background:var(--pv8-accent-soft); }
#recentMenu a b { display:block; font-size:12.5px; font-weight:600; }
#recentMenu a span { color:var(--text-muted); display:block; font-size:11px; margin-top:1px; }

.pv8-library .layout {
  display:grid;
  gap:0;
  grid-template-columns:278px minmax(0,1fr);
  min-height:calc(100vh - 124px);
}
.pv8-library .layout.assets-collapsed { grid-template-columns:42px minmax(0,1fr); }
.pv8-library .layout.assets-collapsed #assetPane {
  display:block;
}
.asset-pane-head { align-items:center; display:flex; justify-content:space-between; }
.asset-pane-head h2 { margin:0 !important; }
.pv8-library .layout.assets-collapsed #assetPane .card { padding:0; }
.pv8-library .layout.assets-collapsed #assetPane .card > :not(.asset-pane-head) { display:none !important; }
.pv8-library .layout.assets-collapsed .asset-pane-head h2 { display:none; }
.pv8-library .layout.assets-collapsed .asset-pane-head { justify-content:center; }
.pv8-library .layout > div:first-child {
  background:var(--surface-1);
  border-right:2px solid var(--pv8-divider);
}
.pv8-library .navigation-pane {
  display:flex;
  flex-direction:column;
  min-height:calc(100vh - 124px);
  padding:0 !important;
}
.pv8-library .navigation-pane .asset-pane-head { padding:17px 14px 15px 18px; }
.pv8-library .layout.assets-collapsed .navigation-pane .asset-pane-head {
  padding:18px 9px;
}
.pv8-library .nav-section { border-top:1px solid var(--pv8-divider); }
.pv8-library .nav-section-toggle {
  align-items:center;
  background:transparent;
  border:0;
  color:var(--text-secondary);
  cursor:pointer;
  display:flex;
  font-size:10px;
  font-weight:600;
  justify-content:space-between;
  letter-spacing:.035em;
  padding:11px 18px;
  text-align:left;
  text-transform:uppercase;
  width:100%;
}
.pv8-library .nav-section-toggle:hover { background:var(--pv8-accent-soft); color:var(--series-1); }
.pv8-library .nav-section-mark {
  color:var(--series-1);
  font-family:var(--pv8-mono);
  font-size:16px;
  font-weight:500;
  letter-spacing:0;
}
.pv8-library .nav-section-body[hidden] { display:none !important; }
.pv8-library .pane-primary-links { border-top:1px solid var(--pv8-divider); }
/* nav rows follow one quiet pattern: line icon + label, rounded pill on
   hover/active — numbers and per-row dividers retired */
.pv8-library .nav-ico {
  flex:0 0 19px;
  width:19px;
  height:19px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.8;
}
.pv8-library .asset-links {
  display:flex;
  flex-direction:column;
  padding:3px 0;
}
.pv8-library .asset-links a,
.pv8-library .pane-utility-links a {
  align-items:center;
  border-radius:10px;
  color:var(--text-primary);
  display:flex;
  font-size:13px;
  font-weight:500;
  gap:11px;
  margin:1px 8px;
  padding:8px 10px;
  text-decoration:none;
}
.pv8-library .asset-links a:hover,
.pv8-library .pane-utility-links a:hover { background:var(--pv8-accent-soft); color:var(--text-primary); }
.pv8-library .asset-links a[aria-current="page"],
.pv8-library .pane-utility-links a[aria-current="page"] {
  background:var(--pv8-accent-soft);
  color:var(--text-primary);
  font-weight:600;
}
.pv8-library .nav-subsection > .nav-section-toggle { padding-left:28px; }
.pv8-library .asset-select-heading {
  align-items:center;
  color:var(--text-secondary);
  display:flex;
  font-size:10px;
  font-weight:600;
  justify-content:space-between;
  letter-spacing:.1em;
  padding:12px 14px 4px;
  text-transform:uppercase;
}
.pv8-library .asset-select-heading .toggle { letter-spacing:0; text-transform:none; }
.pv8-library .decision-nav { display:flex; flex-direction:column; padding:3px 0; }
.pv8-library .decision-nav button,
.pv8-library .decision-nav a {
  align-items:center;
  background:transparent;
  border:0;
  border-radius:10px;
  color:var(--text-primary);
  cursor:pointer;
  display:flex;
  gap:11px;
  margin:1px 8px;
  padding:8px 10px;
  text-align:left;
  text-decoration:none;
}
.pv8-library .decision-nav button:hover,
.pv8-library .decision-nav a:hover { background:var(--pv8-accent-soft); color:var(--text-primary); }
.pv8-library .decision-nav button.active {
  background:var(--pv8-accent-soft);
  color:var(--text-primary);
}
.pv8-library .decision-nav button span,
.pv8-library .decision-nav a span { font-size:13px; font-weight:500; }
.pv8-library .decision-nav button.active span { font-weight:600; }
/* the one-line style keeps descriptions as hover titles, not sub-lines */
.pv8-library .decision-nav button small,
.pv8-library .decision-nav a small { display:none; }
.pv8-library .decision-journey {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:16px;
}
.pv8-library .decision-step {
  border:1px solid var(--pv8-divider);
  border-left:0;
  display:flex;
  flex-direction:column;
  min-height:220px;
  padding:16px;
}
.pv8-library .decision-step:first-child { border-left:1px solid var(--pv8-divider); }
.pv8-library .decision-step.next { box-shadow:inset 0 3px 0 var(--series-1); }
.pv8-library .decision-step.complete { box-shadow:inset 0 3px 0 var(--series-3); }
.pv8-library .decision-step .step-number { color:var(--series-1); font:600 11px var(--pv8-mono); }
.pv8-library .decision-step h3 { font-size:16px; margin:10px 0 5px; }
.pv8-library .decision-step p { color:var(--text-secondary); font-size:12px; }
.pv8-library .decision-step .step-action { margin-top:auto; padding-top:14px; }
.pv8-library .decision-status {
  border:1px solid var(--pv8-divider);
  display:inline-block;
  font:600 9px var(--pv8-mono);
  letter-spacing:.08em;
  padding:3px 6px;
  text-transform:uppercase;
}
.pv8-library .decision-status.next { border-color:var(--series-1); color:var(--series-1); }
.pv8-library .decision-status.complete { border-color:var(--series-3); color:var(--series-3); }
.pv8-library .decision-product-head { border-bottom:1px solid var(--pv8-divider); margin-bottom:16px; padding-bottom:14px; }
.pv8-library .decision-product-head h1 { font-size:24px; margin:4px 0; }
.pv8-library .decision-form {
  border:1px solid var(--pv8-divider);
  display:grid;
  gap:12px;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  margin:14px 0;
  padding:14px;
}
.pv8-library .decision-form label { color:var(--text-secondary); font-size:11px; }
.pv8-library .decision-form input,
.pv8-library .decision-form select,
.pv8-library .decision-form textarea {
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  color:var(--text-primary);
  display:block;
  margin-top:4px;
  padding:7px 8px;
  width:100%;
}
.pv8-library .decision-form-stacked {
  grid-template-columns:minmax(0,760px);
  row-gap:20px;
}
.pv8-library .decision-form-stacked label,
.pv8-library .decision-form-stacked label > span { display:block; }
.pv8-library .research-form select { max-width:520px; }
.pv8-library .research-form input[type="number"] { max-width:180px; }
.pv8-library .research-form textarea {
  min-height:96px;
  resize:vertical;
}
.pv8-library .research-form-action {
  min-height:38px;
  padding-left:16px;
  padding-right:16px;
}
.pv8-library .research-brief-grid {
  display:grid;
  gap:14px 20px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.pv8-library .research-brief-grid [hidden] { display:none; }
.pv8-library .research-funnel {
  display:grid;
  gap:0;
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin:12px 0 0;
}
.pv8-library .research-funnel .metric {
  border:1px solid var(--pv8-divider);
  border-right:0;
  min-height:102px;
  padding:13px;
}
.pv8-library .research-funnel .metric:last-child { border-right:1px solid var(--pv8-divider); }
.pv8-library .research-funnel .metric span,
.pv8-library .research-funnel .metric small { color:var(--text-secondary); display:block; font-size:10px; }
.pv8-library .research-funnel .metric b { display:block; font-size:25px; line-height:1; margin:10px 0 7px; }
.pv8-library .research-rejections {
  align-items:center;
  border:1px solid var(--pv8-divider);
  border-top:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:10px 12px;
}
.pv8-library .research-rejections > b { margin-right:4px; }
.pv8-library .research-rejections span { background:var(--surface-1); color:var(--text-secondary); font-size:10px; padding:5px 7px; }
.pv8-library .research-rejections small { color:var(--text-muted); font-size:9px; margin-left:auto; }
.pv8-library .research-section-head {
  align-items:end;
  display:flex;
  gap:16px;
  justify-content:space-between;
  margin:22px 0 10px;
}
.pv8-library .research-section-head h2 { margin:3px 0 0; }
.pv8-library .research-toolbar { align-items:end; display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.pv8-library .research-toolbar label { color:var(--text-secondary); font-size:10px; }
.pv8-library .research-toolbar input { border:1px solid var(--pv8-divider); display:block; margin-top:3px; padding:7px 8px; width:180px; }
.pv8-library .research-toolbar .libbtn { margin:0; min-height:34px; }
.pv8-library .research-map { border:1px solid var(--pv8-divider); height:390px; margin:10px 0 14px; }
.pv8-library .research-shortlist-wrap { overflow-x:auto; }
.pv8-library .research-shortlist { min-width:1080px; table-layout:fixed; }
.pv8-library .research-shortlist .research-pick { width:38px; }
.pv8-library .research-shortlist .research-rank { width:42px; }
.pv8-library .research-shortlist .research-candidate { width:17%; }
.pv8-library .research-shortlist .research-thesis { width:25%; }
.pv8-library .research-shortlist .research-demand { width:12%; }
.pv8-library .research-shortlist .research-route { width:10%; }
.pv8-library .research-shortlist .research-score { width:12%; }
.pv8-library .research-shortlist .research-actions { width:10%; }
.pv8-library .research-shortlist td { vertical-align:top; }
.pv8-library .research-shortlist input[type="checkbox"] { height:16px; width:16px; }
.pv8-library .research-score { color:var(--series-3); }
.pv8-library .heat-tag { color:#c2410c; font-size:10px; font-weight:600; }
.pv8-library .text-action { background:none; border:0; color:var(--series-1); cursor:pointer; display:block; font:600 10px var(--pv8-mono); margin:0 0 7px; padding:0; text-align:left; }
.pv8-library .research-purchase {
  align-items:center;
  background:var(--surface-1);
  border:1px solid var(--pv8-divider);
  display:flex;
  gap:18px;
  justify-content:space-between;
  margin:14px 0;
  padding:14px;
}
.pv8-library .research-purchase .libbtn { background:var(--series-3); border-color:var(--series-3); color:#fff; flex:0 0 auto; margin:0; }
.pv8-library .research-purchase .libbtn:disabled { cursor:not-allowed; opacity:.45; }
.pv8-library .research-executive { font-size:15px; line-height:1.55; max-width:900px; }
.pv8-library .research-dossier { border:1px solid var(--pv8-divider); margin:10px 0; }
.pv8-library .research-dossier summary { align-items:center; cursor:pointer; display:flex; gap:14px; justify-content:space-between; list-style:none; padding:13px 14px; }
.pv8-library .research-dossier summary::-webkit-details-marker { display:none; }
.pv8-library .research-dossier summary small { color:var(--text-secondary); display:block; margin-top:3px; }
.pv8-library .research-dossier[open] summary { border-bottom:1px solid var(--pv8-divider); }
.pv8-library .research-dossier > :not(summary) { margin-left:14px; margin-right:14px; }
.pv8-library .research-dossier-grid { display:grid; gap:0; grid-template-columns:repeat(2,minmax(0,1fr)); margin:14px !important; }
.pv8-library .research-dossier-grid > div { border:1px solid var(--pv8-divider); margin:-1px 0 0 -1px; padding:11px; }
.pv8-library .research-dossier-grid span { color:var(--text-secondary); font:600 9px var(--pv8-mono); letter-spacing:.06em; text-transform:uppercase; }
.pv8-library .research-dossier-grid p { margin:6px 0 0; }
@media (max-width:900px) {
  .pv8-library .research-brief-grid,
  .pv8-library .research-dossier-grid { grid-template-columns:1fr; }
  .pv8-library .research-funnel { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pv8-library .research-funnel .metric { border-right:1px solid var(--pv8-divider); }
  .pv8-library .research-section-head,
  .pv8-library .research-purchase { align-items:stretch; flex-direction:column; }
  .pv8-library .research-toolbar { justify-content:flex-start; }
}
.pv8-library .decision-output { border-top:1px solid var(--pv8-divider); margin-top:16px; padding-top:16px; }
.pv8-library .source-list a { overflow-wrap:anywhere; }
.pv8-library .objective-entry {
  border:1px solid var(--pv8-divider);
  margin-top:12px;
  padding:11px 12px;
}
.pv8-library .objective-entry label > b,
.pv8-library .objective-entry label > span { display:block; }
.pv8-library .objective-entry-row { align-items:stretch; display:flex; gap:8px; margin-top:7px; }
.pv8-library .objective-entry textarea {
  background:#fff;
  border:1px solid var(--pv8-divider);
  border-radius:0;
  color:var(--text-primary);
  flex:1;
  min-height:54px;
  padding:8px 9px;
  resize:vertical;
}
.pv8-library .objective-entry .libbtn {
  align-self:stretch;
  background:var(--series-1);
  border-color:var(--series-1);
  border-radius:0;
  color:#fff;
  margin:0;
  min-width:112px;
}
.pv8-library .objective-entry .libbtn:disabled { cursor:wait; opacity:.55; }
.pv8-library #clientObjectiveStatus { margin-top:7px; min-height:16px; }
.pv8-library .objective-shortcut-label {
  align-items:center;
  color:var(--text-muted);
  display:flex;
  font-size:9px;
  gap:8px;
  letter-spacing:.09em;
  margin-top:10px;
  text-transform:uppercase;
}
.pv8-library .objective-shortcut-label::after { background:var(--pv8-divider); content:""; height:1px; flex:1; }
.pv8-library .client-objective-quote {
  border-left:3px solid var(--series-1);
  color:var(--text-primary);
  margin:10px 0;
  max-width:850px;
  padding:7px 10px;
}
.pv8-library .client-objective-quote span {
  color:var(--text-muted);
  display:block;
  font-size:9px;
  letter-spacing:.1em;
  margin-bottom:2px;
  text-transform:uppercase;
}
.pv8-library .asset-view-switch { padding:12px 14px 4px; }
.pv8-library #assetList,
.pv8-library #assetMap { padding:8px 14px 6px; }
.pv8-library .pane-utility-links {
  border-top:1px solid var(--pv8-divider);
  display:flex;
  flex-direction:column;
  margin-top:auto;
}
.pv8-library .pane-utility-links a + a { border-top:1px solid var(--pv8-divider); }
.pv8-portfolio .portfolio-layout { min-height:calc(100vh - 64px); }
.pv8-portfolio .navigation-pane { min-height:calc(100vh - 64px); }
.pv8-portfolio .portfolio-main { min-width:0; }
.pv8-portfolio .portfolio-asset-selector { padding:8px 14px 10px; }
.pv8-portfolio .portfolio-asset-choice {
  background:#fff;
  border:1px solid var(--pv8-divider);
  color:var(--text-primary);
  cursor:pointer;
  display:block;
  margin-bottom:6px;
  padding:8px 9px;
  text-align:left;
  width:100%;
}
.pv8-portfolio .portfolio-asset-choice:hover,
.pv8-portfolio .portfolio-asset-choice.selected { border-color:var(--series-1); color:var(--series-1); }
.pv8-portfolio .portfolio-asset-choice b,
.pv8-portfolio .portfolio-asset-choice span { display:block; }
.pv8-portfolio .portfolio-asset-choice span { color:var(--text-muted); font-size:10px; margin-top:1px; }
.pv8-portfolio #portfolioAssetMap iframe { border:0; display:block; height:190px; margin-bottom:5px; width:100%; }
.pv8-library .card {
  background:transparent;
  border:0;
  border-radius:0;
  padding:18px;
}
.pv8-library .layout > .card { padding:0; min-width:0; }
.pv8-library .card h2,
.pv8-library #result > h2,
.pv8-library #h2FoundationResults > h2 {
  color:var(--text-secondary);
  font-size:10px;
  font-weight:600;
  letter-spacing:.035em;
  margin-bottom:9px;
  text-transform:uppercase;
}
.pv8-library .workspace-head {
  align-items:center;
  border-bottom:1px solid var(--pv8-divider);
  display:flex;
  gap:16px;
  min-height:68px;
  padding:12px 20px;
}
.pv8-library .workspace-head > div:first-child { min-width:0; }
.pv8-library #selName {
  color:var(--text-primary);
  font-size:16px;
  letter-spacing:-.01em;
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  text-transform:none;
  white-space:nowrap;
}
.pv8-library #dataroom { margin:0 0 0 auto !important; text-align:right; }

.pv8-library .module-workspace {
  min-height:calc(100vh - 194px);
  min-width:0;
  padding:20px 22px 36px;
}
.pv8-library .workspace-help-frame {
  background:#fff;
  border:0;
  display:block;
  height:max(640px,calc(100vh - 240px));
  width:100%;
}
.pv8-portfolio #portfolioHelp[hidden] { display:none; }
.pv8-portfolio .workspace-help-frame { height:max(640px,calc(100vh - 64px)); }
.pv8-library #kindBtns {
  display:flex;
  flex-direction:column;
  gap:0;
  margin:0;
  padding:3px 0;
}
.pv8-library #kindBtns button {
  align-items:center;
  background:transparent;
  border:0;
  border-radius:10px;
  color:var(--text-primary);
  display:flex;
  font-size:13px;
  font-weight:500;
  gap:11px;
  margin:1px 8px;
  min-height:0;
  padding:8px 10px;
  position:relative;
  text-align:left;
  width:calc(100% - 16px);
}
/* numbers retired: each module carries its own line icon (nav-icons.js);
   the one-line description moves to the hover title */
.pv8-library #kindBtns button::before { content:none; }
.pv8-library #kindBtns button::after { content:none; }
.pv8-library #kindBtns button:hover { background:var(--pv8-accent-soft); }
.pv8-library #kindBtns button.active {
  background:var(--pv8-accent-soft);
  box-shadow:none;
  color:var(--text-primary) !important;
  font-weight:600;
}
.pv8-library #kindBtns > button.has-submenu::after {
  color:var(--text-secondary);
  content:"⌄";
  font-size:13px;
  margin-left:auto;
  position:static;
}
.pv8-library #kindBtns > button.has-submenu[aria-expanded="true"]::after {
  content:"⌃";
}
.module-submenu {
  background:#fff;
  border-bottom:1px solid var(--pv8-divider);
  display:flex;
  flex-direction:column;
}
.module-submenu[hidden] { display:none !important; }
.pv8-library #kindBtns .module-submenu button {
  border-bottom:0;
  font-size:12px;
  font-weight:500;
  min-height:38px;
  padding:8px 14px 8px 48px;
}
.pv8-library #kindBtns .module-submenu button::before,
.pv8-library #kindBtns .module-submenu button::after { content:none; }
.pv8-library #kindBtns .module-submenu button.active {
  background:var(--pv8-accent-soft);
  box-shadow:inset 4px 0 0 var(--series-1);
  color:var(--series-1) !important;
}
.rec-radius {
  align-items:center;
  border:0;
  display:flex;
  gap:14px;
  margin:0;
  padding:0;
}
.rec-radius legend {
  color:var(--text-secondary);
  float:left;
  font-size:11px;
  margin-right:12px;
  padding:3px 0 0;
}
.rec-radius label { margin:0; white-space:nowrap; }
.derived-input {
  border-left:4px solid var(--series-1);
  display:grid;
  gap:3px;
  margin:10px 0;
  padding:9px 12px;
}
.derived-input > b { font-size:14px; }

.pv8-library .asset {
  background:#fff;
  border:1px solid var(--pv8-divider);
  border-radius:0;
  margin-bottom:8px;
  padding:10px 12px;
}
.pv8-library .asset:hover { background:var(--pv8-accent-soft); border-color:var(--series-1); }
.pv8-library .asset.sel {
  background:var(--pv8-accent-soft);
  border-color:var(--series-1);
  box-shadow:inset 3px 0 0 var(--series-1);
}
.pv8-library .asset b { font-size:13px; font-weight:600; }
.pv8-library .asset span { display:block; line-height:1.4; margin-top:3px; }

.pv8-library .toggle,
.pv8-library .btns button,
.pv8-library .libbtn,
.pv8-library form button,
.pv8-library button,
.pv8-library input,
.pv8-library select,
.pv8-library fieldset,
.pv8-library details,
.pv8-library .opts,
.pv8-library .gate,
.pv8-library .metric,
.pv8-library #gmapCanvas,
.pv8-library #cmpMapA,
.pv8-library #cmpMapB,
.pv8-library #recMapBox { border-radius:0 !important; }
.pv8-library .toggle { border-color:var(--pv8-divider); }
.pv8-library .toggle button.active,
.pv8-library .cmpv.active {
  background:var(--series-1);
  border-color:var(--series-1);
  color:#fff !important;
}
.pv8-library .libbtn,
.pv8-library button:not([hidden]) {
  transition:background-color 120ms ease, border-color 120ms ease, color 120ms ease;
}
.pv8-library .libbtn {
  color:var(--series-1);
  font-weight:500;
}
.pv8-library .opts,
.pv8-library #repOpts,
.pv8-library #libPanel {
  background:var(--surface-1);
  border:1px solid var(--pv8-divider) !important;
  padding:14px !important;
}
.pv8-library input,
.pv8-library select {
  background:#fff;
  border:1px solid var(--pv8-divider);
  color:var(--text-primary);
  min-height:31px;
}
.pv8-library table {
  font-family:var(--pv8-sans);
  table-layout:auto;
}
.pv8-library table th:first-child,
.pv8-library table td:first-child { width:1%; }
.pv8-library .key-value-table td:first-child { white-space:nowrap; }
.pv8-library .mdc-energy-balance td:first-child {
  min-width:240px;
  width:clamp(240px,28vw,420px);
}
.pv8-library .mdc-energy-balance td:last-child { width:auto; }
.pv8-library .ev-layer-pane table th:first-child,
.pv8-library .ev-layer-pane table td:first-child {
  min-width:220px;
  width:auto;
}
.pv8-library .mdc-energy-dashboard { display:grid; gap:18px; }
.pv8-library .mdc-dashboard-head {
  align-items:flex-end;
  border-bottom:2px solid var(--pv8-divider);
  display:flex;
  gap:20px;
  justify-content:space-between;
  padding-bottom:12px;
}
.pv8-library .mdc-dashboard-head h2 { margin-bottom:3px; }
.pv8-library .mdc-dashboard-head p {
  color:var(--text-secondary);
  font-size:12px;
  max-width:720px;
}
.pv8-library .mdc-view-controls,
.pv8-library .mdc-share-presets {
  align-items:center;
  display:flex;
  gap:0;
}
.pv8-library .mdc-view-controls > span {
  color:var(--text-secondary);
  font-size:10px;
  letter-spacing:.08em;
  margin-right:8px;
  text-transform:uppercase;
  white-space:nowrap;
}
.pv8-library .mdc-view-toggle,
.pv8-library .mdc-share-preset {
  background:var(--surface-1);
  border:1px solid var(--pv8-divider);
  color:var(--text-secondary);
  cursor:pointer;
  font:500 11px var(--pv8-sans);
  min-height:30px;
  padding:5px 10px;
}
.pv8-library .mdc-view-toggle + .mdc-view-toggle,
.pv8-library .mdc-share-preset + .mdc-share-preset { border-left:0; }
.pv8-library .mdc-view-toggle[aria-pressed="true"],
.pv8-library .mdc-share-preset[aria-pressed="true"] {
  background:var(--series-1);
  border-color:var(--series-1);
  color:#fff;
}
.pv8-library .mdc-energy-controls {
  background:var(--surface-1);
  border:1px solid var(--pv8-divider);
  display:grid;
  gap:24px;
  grid-template-columns:minmax(300px,1.6fr) minmax(230px,1fr);
  padding:16px;
}
.pv8-library .mdc-pv-control > label {
  align-items:baseline;
  display:flex;
  font-weight:600;
  justify-content:space-between;
}
.pv8-library #mdcPvShareOutput {
  color:var(--series-1);
  font:600 20px var(--pv8-mono);
}
.pv8-library .mdc-range-row {
  align-items:center;
  display:grid;
  gap:8px;
  grid-template-columns:minmax(160px,1fr) 64px auto;
  margin:8px 0 10px;
}
.pv8-library .mdc-range-row input[type="range"] {
  accent-color:var(--series-1);
  min-height:auto;
  width:100%;
}
.pv8-library .mdc-range-row input[type="number"] {
  font-family:var(--pv8-mono);
  margin:0;
  text-align:right;
  width:64px;
}
.pv8-library .mdc-share-presets { align-items:stretch; }
.pv8-library .mdc-share-preset { flex:1; }
.pv8-library .mdc-cost-controls {
  border-left:1px solid var(--pv8-divider);
  display:grid;
  gap:10px;
  padding-left:24px;
}
.pv8-library .mdc-cost-controls label {
  align-items:center;
  display:flex;
  justify-content:space-between;
}
.pv8-library .mdc-cost-controls label > span { white-space:nowrap; }
.pv8-library .mdc-cost-controls input {
  font-family:var(--pv8-mono);
  margin:0 4px 0 0;
  text-align:right;
  width:76px;
}
.pv8-library .mdc-energy-kpis {
  border:1px solid var(--pv8-divider);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.pv8-library .mdc-energy-kpis article {
  border-left:1px solid var(--pv8-divider);
  min-height:96px;
  padding:13px 14px;
}
.pv8-library .mdc-energy-kpis article:first-child { border-left:0; }
.pv8-library .mdc-energy-kpis span,
.pv8-library .mdc-average-deficit > span {
  color:var(--text-secondary);
  display:block;
  font-size:9px;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.pv8-library .mdc-energy-kpis b {
  display:block;
  font:600 18px var(--pv8-mono);
  margin:7px 0 2px;
}
.pv8-library .mdc-energy-kpis small,
.pv8-library .mdc-average-deficit small,
.pv8-library .mdc-download-recommendation > small {
  color:var(--text-muted);
  display:block;
  font-size:11px;
}
.pv8-library .mdc-energy-visuals {
  display:grid;
  gap:26px;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
}
.pv8-library .mdc-energy-figure {
  border-top:2px solid var(--pv8-divider);
  margin:0;
  min-width:0;
  padding-top:11px;
}
.pv8-library .mdc-energy-figure figcaption {
  font-size:12px;
  font-weight:600;
  margin-bottom:18px;
  text-transform:uppercase;
}
.pv8-library .mdc-supply-bar {
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  display:flex;
  height:42px;
  overflow:hidden;
  width:100%;
}
.pv8-library .mdc-supply-bar span { display:block; transition:width 180ms ease; }
.pv8-library .mdc-supply-pv { background:var(--good); }
.pv8-library .mdc-supply-grid { background:var(--series-1); }
.pv8-library .mdc-supply-legend {
  display:flex;
  flex-wrap:wrap;
  gap:8px 24px;
  margin-top:10px;
}
.pv8-library .mdc-supply-legend span { align-items:center; display:flex; gap:7px; }
.pv8-library .mdc-supply-legend i { display:block; height:10px; width:10px; }
.pv8-library .mdc-supply-legend i.pv { background:var(--good); }
.pv8-library .mdc-supply-legend i.grid { background:var(--series-1); }
.pv8-library .mdc-supply-legend b { font-family:var(--pv8-mono); }
.pv8-library .mdc-visual-note {
  color:var(--text-muted);
  font-size:11px;
  margin-top:9px;
}
.pv8-library .crypto-energy-controls { margin:8px 0 18px; }
.pv8-library .crypto-energy-controls .mdc-supply-grid,
.pv8-library .crypto-energy-controls .mdc-supply-legend i.grid {
  background:var(--pv8-solar);
}
.pv8-library .crypto-supply-figure {
  align-self:stretch;
  border-top:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  margin:0;
  padding:0;
}
.pv8-library .crypto-grid-residual {
  align-items:baseline;
  border-top:1px solid var(--pv8-divider);
  color:var(--text-secondary);
  display:flex;
  font-size:11px;
  justify-content:space-between;
  margin-top:12px;
  padding-top:9px;
}
.pv8-library .crypto-grid-residual output {
  color:var(--warning);
  font:600 18px var(--pv8-mono);
}
.pv8-library .mdc-capacity-track {
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  height:24px;
  position:relative;
}
.pv8-library .mdc-capacity-requirement {
  background:color-mix(in srgb,var(--series-1) 65%,transparent);
  display:block;
  height:100%;
  transition:width 180ms ease;
}
.pv8-library .mdc-capacity-existing-marker {
  background:var(--text-primary);
  height:34px;
  position:absolute;
  top:-6px;
  transform:translateX(-1px);
  width:2px;
}
.pv8-library .mdc-capacity-existing-marker::before {
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid var(--text-primary);
  content:"";
  left:-3px;
  position:absolute;
  top:-1px;
}
.pv8-library .mdc-capacity-axis > span,
.pv8-library .mdc-capacity-labels {
  color:var(--text-muted);
  font:500 10px var(--pv8-mono);
}
.pv8-library .mdc-capacity-axis > span:first-of-type { float:left; }
.pv8-library .mdc-capacity-axis > span:last-of-type { float:right; }
.pv8-library .mdc-capacity-labels {
  clear:both;
  display:flex;
  gap:12px;
  justify-content:space-between;
  padding-top:9px;
}
.pv8-library .mdc-capacity-labels span:first-child { color:var(--series-1); }
.pv8-library .mdc-average-deficit {
  border-top:1px solid var(--pv8-divider);
  margin-top:15px;
  padding-top:10px;
}
.pv8-library .mdc-average-deficit b {
  display:block;
  font:600 19px var(--pv8-mono);
  margin:3px 0 1px;
}
.pv8-library .mdc-download-recommendation {
  background:color-mix(in srgb,var(--series-1) 5%,var(--surface-1));
  border-left:4px solid var(--series-1);
  padding:16px 18px;
}
.pv8-library .mdc-download-recommendation h3 { font-size:18px; margin:4px 0 5px; }
.pv8-library .mdc-download-recommendation p { color:var(--text-secondary); max-width:900px; }
.pv8-library .mdc-download-status {
  border-top:1px solid var(--pv8-divider);
  font-weight:600;
  margin-top:12px;
  padding-top:10px;
}
.pv8-library .mdc-download-status.shortfall { color:var(--serious); }
.pv8-library .mdc-download-status.sufficient { color:var(--good); }
.pv8-library .mdc-download-recommendation dl {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:12px 0;
}
.pv8-library .mdc-download-recommendation dl > div {
  border-left:1px solid var(--pv8-divider);
  padding:4px 12px;
}
.pv8-library .mdc-download-recommendation dl > div:first-child {
  border-left:0;
  padding-left:0;
}
.pv8-library .mdc-download-recommendation dt {
  color:var(--text-secondary);
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pv8-library .mdc-download-recommendation dd {
  font:600 17px var(--pv8-mono);
  margin-top:2px;
}
.pv8-library .mdc-energy-detail { border-top:1px solid var(--pv8-divider); padding-top:10px; }
.pv8-library .mdc-energy-detail summary { cursor:pointer; font-weight:600; }
.pv8-library .mdc-energy-detail[open] summary { margin-bottom:8px; }
/* One-layer financial inputs: nothing hidden. Category labels carry useful
   structure, so they use the interface face rather than a decorative mono. */
.pv8-library .fin-band {
  border-left:3px solid var(--pv8-divider);
  margin:16px 0;
  padding:2px 0 2px 14px;
}
.pv8-library .fin-kicker {
  color:var(--pv8-accent, #116b55);
  font:650 11px/1.4 var(--pv8-sans);
  letter-spacing:.01em;
  margin-bottom:8px;
  text-transform:uppercase;
}
.pv8-library .fin-kicker .muted {
  font:400 11px/1.4 "IBM Plex Sans",system-ui,sans-serif;
  letter-spacing:0;
  text-transform:none;
}
.pv8-library .fin-grid {
  display:grid;
  gap:7px 18px;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
}
.pv8-library .fin-grid label {
  align-items:center;
  display:flex;
  justify-content:space-between;
  margin:0;
}
.pv8-library .ev-energy-inputs { margin:12px 0 4px; }
.pv8-library .ev-energy-input-grid {
  display:grid;
  gap:9px 16px;
  grid-template-columns:repeat(3,minmax(180px,1fr));
}
.pv8-library .ev-energy-input-grid label {
  align-items:center;
  display:flex;
  justify-content:space-between;
}
.pv8-library .ev-energy-input-grid input { margin-left:8px; width:92px; }
/* the CAPEX category sits flat inside the one-layer fin-table — no box */
.pv8-library .ev-capex-inputs { margin:0; }
.pv8-library .fin-table {
  border-top:2px solid var(--pv8-divider);
  margin:14px 0 4px;
}
.pv8-library .fin-cat {
  border-bottom:1px solid var(--pv8-divider);
  padding:12px 0 14px;
}
.pv8-library .fin-cat .fin-grid { margin-top:2px; }
.pv8-library .ev-capex-mode-label {
  align-items:center;
  display:flex !important;
  font-weight:600;
  gap:12px;
  margin:14px 0 10px !important;
}
.pv8-library .ev-capex-mode-label select { min-width:300px; }
.pv8-library .ev-capex-total {
  align-items:center;
  background:color-mix(in srgb,var(--series-1) 7%,transparent);
  border-left:3px solid var(--series-1);
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:10px 0;
  padding:10px 12px;
}
.pv8-library .ev-capex-total[hidden] { display:none; }
.pv8-library .ev-capex-total label { font-weight:600; margin:0; }
.pv8-library .ev-capex-total input { margin-left:8px; width:150px; }
.pv8-library .ev-capex-lines {
  border-top:1px solid var(--pv8-divider);
  margin-top:12px;
  padding-top:10px;
}
.pv8-library .ev-capex-lines summary { cursor:pointer; }
.pv8-library .ev-capex-lines.is-muted { opacity:.62; }
.pv8-library .ev-capex-line-grid {
  display:grid;
  gap:8px 20px;
  grid-template-columns:repeat(2,minmax(260px,1fr));
  margin-top:12px;
}
.pv8-library .ev-capex-line-grid label,
.pv8-library .ev-capex-provenance label {
  align-items:center;
  display:flex;
  justify-content:space-between;
}
.pv8-library .ev-capex-line-grid input { margin-left:12px; width:150px; }
.pv8-library .ev-capex-provenance {
  display:grid;
  gap:8px 20px;
  grid-template-columns:minmax(220px,.8fr) minmax(300px,1.2fr);
  margin:14px 0 10px;
}
.pv8-library .ev-capex-provenance input,
.pv8-library .ev-capex-provenance select { margin-left:12px; min-width:170px; }
.pv8-library .ev-capex-result {
  border-top:2px solid var(--series-1);
  margin-top:18px;
  padding-top:14px;
}
.pv8-library .ev-capex-result h3 { font-size:20px; margin:3px 0 10px; }
.pv8-library .ev-energy-dashboard { padding-bottom:4px; }
.pv8-library .ev-energy-controls {
  background:var(--surface-1);
  border:1px solid var(--pv8-divider);
  display:grid;
  gap:24px;
  grid-template-columns:minmax(300px,1.05fr) minmax(380px,1.45fr);
  padding:16px;
}
.pv8-library .ev-mix-controls h3,
.pv8-library .ev-cost-controls h3 { font-size:14px; margin-bottom:12px; }
.pv8-library .ev-mix-controls > label {
  align-items:baseline;
  display:flex;
  font-weight:600;
  justify-content:space-between;
}
.pv8-library .ev-mix-controls output {
  color:var(--series-1);
  font:600 18px var(--pv8-mono);
}
.pv8-library .ev-grid-residual {
  align-items:center;
  border-top:1px solid var(--pv8-divider);
  display:flex;
  justify-content:space-between;
  margin:5px 0 12px;
  padding-top:9px;
}
.pv8-library .ev-grid-residual b { font:600 18px var(--pv8-mono); }
.pv8-library .ev-cost-controls {
  border-left:1px solid var(--pv8-divider);
  display:grid;
  gap:8px 22px;
  grid-template-columns:repeat(2,minmax(170px,1fr));
  padding-left:24px;
}
.pv8-library .ev-cost-controls h3 { grid-column:1/-1; }
.pv8-library .ev-cost-controls label {
  align-items:center;
  display:flex;
  justify-content:space-between;
}
.pv8-library .ev-cost-controls label > span { white-space:nowrap; }
.pv8-library .ev-cost-controls input {
  font-family:var(--pv8-mono);
  margin:0 3px 0 8px;
  text-align:right;
  width:82px;
}
.pv8-library .ev-finance-kpis { grid-template-columns:repeat(5,minmax(0,1fr)); }
.pv8-library .ev-energy-visuals,
.pv8-library .ev-reconciliation-grid {
  display:grid;
  gap:26px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.pv8-library .ev-supply-bess { background:var(--series-2,#c47d15); }
.pv8-library .mdc-supply-legend i.bess { background:var(--series-2,#c47d15); }
.pv8-library .ev-bess-charge-summary {
  font:600 12px var(--pv8-mono);
  margin-bottom:10px;
  min-height:34px;
}
.pv8-library .ev-charge-bar { height:26px; }
.pv8-library .ev-finance-outcome {
  border-left:4px solid var(--pv8-divider);
  padding:14px 17px;
}
.pv8-library .ev-finance-outcome.positive {
  background:color-mix(in srgb,var(--good) 6%,var(--surface-1));
  border-left-color:var(--good);
}
.pv8-library .ev-finance-outcome.negative {
  background:color-mix(in srgb,var(--serious) 5%,var(--surface-1));
  border-left-color:var(--serious);
}
.pv8-library .ev-finance-outcome h3 { font-size:18px; margin:4px 0; }
.pv8-library .ev-finance-outcome p { color:var(--text-secondary); max-width:960px; }
.pv8-library .ev-reconciliation-grid .mdc-energy-detail {
  border:1px solid var(--pv8-divider);
  padding:12px;
}
.pv8-library .ev-model-boundary {
  background:var(--surface-0);
  border-top:1px solid var(--pv8-divider);
  color:var(--text-secondary);
  font-size:11px;
  padding:10px 12px;
}
.pv8-library .mdc-energy-balance td:last-child { text-align:right; white-space:nowrap; }
.pv8-library .mdc-price-history h3 { margin-bottom:8px; }
.pv8-library .mdc-price-bars {
  align-items:end;
  border-bottom:1px solid var(--pv8-divider);
  display:flex;
  gap:18px;
  height:190px;
  margin-bottom:10px;
  padding:12px 12px 0;
}
.pv8-library .mdc-price-year {
  align-items:center;
  display:grid;
  flex:1;
  grid-template-rows:auto 1fr auto auto;
  height:100%;
  max-width:180px;
  text-align:center;
}
.pv8-library .mdc-price-value { font:600 12px var(--pv8-mono); margin-bottom:5px; }
.pv8-library .mdc-price-track {
  align-items:end;
  display:flex;
  height:112px;
  justify-content:center;
  min-height:112px;
}
.pv8-library .mdc-price-track span { background:var(--series-1); display:block; max-width:70px; width:65%; }
.pv8-library .mdc-price-year b { font-family:var(--pv8-mono); margin-top:5px; }
.pv8-library .mdc-price-year small { color:var(--text-muted); font-size:10px; min-height:30px; }
.pv8-library th {
  border-bottom:2px solid var(--pv8-divider);
  color:var(--text-secondary);
  font-size:9px;
  font-weight:600;
  letter-spacing:.08em;
  padding:7px 8px;
  text-align:left;
  text-transform:uppercase;
}
.pv8-library td { padding:7px 8px; }
.pv8-library .advisor-table-wrap { overflow-x:auto; width:100%; }
.pv8-library .advisor-table { table-layout:auto; min-width:760px; }
.pv8-library .advisor-table col.advisor-rank { width:38px; }
.pv8-library .advisor-table col.advisor-option { width:31%; }
.pv8-library .advisor-table col.advisor-screen { width:42%; }
.pv8-library .advisor-table col.advisor-value { width:140px; }
.pv8-library .advisor-table col.advisor-readiness { width:115px; }
.pv8-library .advisor-table col.advisor-action { width:100px; }
.pv8-library .advisor-table th:first-child,
.pv8-library .advisor-table td:first-child {
  max-width:38px;
  white-space:nowrap;
  width:38px !important;
}
.pv8-library .advisor-table th:nth-child(4),
.pv8-library .advisor-table td:nth-child(4),
.pv8-library .advisor-table th:nth-child(5),
.pv8-library .advisor-table td:nth-child(5),
.pv8-library .advisor-table th:nth-child(6),
.pv8-library .advisor-table td:nth-child(6) { white-space:nowrap; }
.pv8-library .advisor-table td:nth-child(2),
.pv8-library .advisor-table td:nth-child(3) { overflow-wrap:anywhere; }
.pv8-library .metric-grid { gap:0; border:2px solid var(--pv8-divider); }
.pv8-library .metric {
  background:#fff;
  border:0;
  border-left:1px solid var(--pv8-divider);
  min-height:72px;
  padding:11px 13px;
}
.pv8-library .metric:first-child { border-left:0; }
.pv8-library .metric b { font-family:var(--pv8-mono); font-size:17px; }
.pv8-library .rec { font-size:22px; letter-spacing:-.02em; }
.pv8-library .chip { border-radius:0; }
.pv8-library .docs {
  border-bottom:1px solid var(--pv8-divider);
  border-top:1px solid var(--pv8-divider);
  margin:12px 0;
  padding:10px 0;
}
.pv8-library .docs.module-output-menu {
  align-items:stretch;
  display:flex;
  flex-direction:column;
  flex-wrap:nowrap;
  gap:8px;
  max-width:560px;
  width:100%;
}
.pv8-library .docs.module-output-menu > a {
  box-sizing:border-box;
  width:100%;
}
.pv8-library .module-output-menu > .save-share-row {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  width:100%;
}
.pv8-library .module-output-menu > .save-share-row > .libbtn {
  margin-left:0;
}
.pv8-library .module-output-menu > .save-share-row > .save-status {
  flex-basis:100%;
}
.pv8-library .dw-table-toolbar {
  align-items:center;
  border-bottom:1px solid var(--pv8-divider);
  box-sizing:border-box;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  gap:14px;
  margin:6px 0 0;
  max-width:none;
  min-width:0;
  overflow:visible;
  padding:8px 0;
  white-space:nowrap;
  width:100%;
}
.pv8-library .dw-table-toolbar > a { flex:0 0 auto; }
.pv8-library .dw-table-size,
.pv8-library .dw-table-pagination {
  align-items:center;
  display:inline-flex;
  flex:0 0 auto;
  gap:7px;
}
.pv8-library .dw-table-size select {
  margin:0;
  min-width:118px;
  width:auto;
}
.pv8-library .dw-table-pagination .libbtn { margin:0; }
.pv8-library .dw-candidate-table-wrap {
  overflow-x:visible;
  width:100%;
}
.pv8-library .dw-candidate-table {
  min-width:0;
  table-layout:fixed;
  width:100%;
}
.pv8-library .dw-candidate-table col.rank { width:42px; }
.pv8-library .dw-candidate-table col.candidate { width:25%; }
.pv8-library .dw-candidate-table col.distance { width:10%; }
.pv8-library .dw-candidate-table col.profile-fit { width:auto; }
.pv8-library .dw-candidate-table col.tools { width:206px; }
.pv8-library .dw-candidate-table td { vertical-align:top; }
.pv8-library .dw-candidate-table td:last-child { white-space:normal; }
.pv8-library .dw-candidate-table tr.dw-outreach-row-selected > td,
.pv8-library .dw-planned-table tr.dw-outreach-row-selected > td {
  background:color-mix(in srgb, var(--pv8-green) 8%, #fff);
  box-shadow:inset 0 1px color-mix(in srgb,var(--pv8-green) 22%,transparent),
             inset 0 -1px color-mix(in srgb,var(--pv8-green) 22%,transparent);
}
.pv8-library .dw-candidate-table tr.dw-outreach-row-selected > td:first-child,
.pv8-library .dw-planned-table tr.dw-outreach-row-selected > td:first-child {
  box-shadow:inset 4px 0 var(--pv8-green),
             inset 0 1px color-mix(in srgb,var(--pv8-green) 22%,transparent),
             inset 0 -1px color-mix(in srgb,var(--pv8-green) 22%,transparent);
}
.pv8-library .dw-candidate-actions {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.pv8-library .dw-candidate-actions .libbtn { margin:0; }
.pv8-library .dw-candidate-actions .dw-outreach-select {
  flex:1 0 100%;
  justify-content:center;
}
.pv8-library .libbtn.selected {
  background:#e7f4ef;
  border-color:color-mix(in srgb,var(--pv8-green) 55%,#fff);
  color:var(--pv8-green);
}
.pv8-library .dw-outreach-selection {
  align-items:center;
  background:color-mix(in srgb,var(--pv8-green) 3%,#fff);
  border:1px solid var(--grid);
  border-left:4px solid color-mix(in srgb,var(--pv8-green) 28%,#fff);
  border-radius:8px;
  display:flex;
  gap:18px;
  justify-content:space-between;
  margin:0 0 14px;
  min-height:64px;
  padding:11px 13px;
}
.pv8-library .dw-outreach-selection:focus { outline:3px solid color-mix(in srgb,var(--pv8-green) 18%,transparent); }
.pv8-library .dw-outreach-selection > div:first-child b,
.pv8-library .dw-outreach-selection > div:first-child span { display:block; }
.pv8-library .dw-outreach-selection > div:first-child b { font-size:13px; }
.pv8-library .dw-outreach-selection > div:first-child span { color:var(--text-muted); font-size:11.5px; margin-top:2px; }
.pv8-library .dw-outreach-selection.selected { border-left-color:var(--pv8-green); }
.pv8-library .dw-outreach-selection.needs-choice { background:#fff8f6; border-color:#dc9e91; border-left-color:#b94132; }
.pv8-library .dw-outreach-selection-state { color:var(--text-muted); flex:0 0 auto; font-size:11.5px; }
.pv8-library .dw-outreach-selection-actions { display:flex; flex:0 0 auto; gap:7px; }
.pv8-library .dw-outreach-selection-actions .libbtn { margin:0; }
@media(max-width:760px) {
  .pv8-library .dw-outreach-selection { align-items:stretch; flex-direction:column; gap:9px; }
  .pv8-library .dw-outreach-selection-actions { width:100%; }
  .pv8-library .dw-outreach-selection-actions .libbtn { flex:1; }
  .pv8-library .dw-candidate-table col.tools { width:172px; }
}
.pv8-library .dw-planned-demand {
  background:color-mix(in srgb, var(--pv8-green) 3%, #fff);
  border:1px solid var(--pv8-divider);
  border-left:4px solid color-mix(in srgb, var(--pv8-green) 56%, #fff);
  border-radius:8px;
  margin-top:22px;
  padding:16px;
}
.pv8-library .dw-planned-heading {
  align-items:flex-start;
  display:flex;
  gap:18px;
  justify-content:space-between;
}
.pv8-library .dw-planned-heading h4 {
  font-size:20px;
  margin:3px 0 4px;
}
.pv8-library .dw-planned-heading p {
  color:var(--pv8-muted);
  margin:0;
  max-width:880px;
}
.pv8-library .dw-planned-table-wrap {
  margin-top:14px;
  overflow-x:auto;
  width:100%;
}
.pv8-library .dw-planned-table {
  background:#fff;
  min-width:1480px;
  table-layout:fixed;
}
.pv8-library .dw-planned-table th:nth-child(1) { width:255px; }
.pv8-library .dw-planned-table th:nth-child(2) { width:240px; }
.pv8-library .dw-planned-table th:nth-child(3) { width:190px; }
.pv8-library .dw-planned-table th:nth-child(4) { width:105px; }
.pv8-library .dw-planned-table th:nth-child(5) { width:175px; }
.pv8-library .dw-planned-table th:nth-child(6) { width:285px; }
.pv8-library .dw-planned-table th:nth-child(7) { width:180px; }
.pv8-library .dw-planned-table td { vertical-align:top; }
.pv8-library .dw-planned-actions .libbtn {
  margin:0 4px 5px 0;
}
.pv8-library .dw-planned-footnote {
  font-size:11.5px;
  line-height:1.5;
  margin:10px 0 0;
}
.pv8-library .dw-planned-coverage {
  color:var(--pv8-muted);
  font-size:11.5px;
  margin-top:10px;
}
.pv8-library .dw-planned-coverage summary {
  color:var(--pv8-green);
  cursor:pointer;
  font-weight:700;
}
.pv8-library .dw-planned-coverage > div { margin-top:5px; }
.pv8-library .dw-planned-technical {
  font-size:11px;
  margin-top:8px;
}
.pv8-library .dw-sort-summary { flex:0 0 auto; }
.pv8-library .dw-sort-header {
  align-items:center;
  display:flex;
  gap:5px;
}
.pv8-library .dw-sort-button {
  align-items:center;
  appearance:none;
  background:transparent;
  border:0;
  color:inherit;
  cursor:pointer;
  display:inline-flex;
  font:inherit;
  font-weight:inherit;
  gap:6px;
  justify-content:flex-start;
  letter-spacing:inherit;
  margin:0;
  padding:2px 0;
  text-align:left;
  text-transform:inherit;
  flex:1 1 auto;
  min-width:0;
  width:auto;
}
.pv8-library .dw-sort-header .dw-header-help { flex:0 0 15px; margin-left:0; }
.pv8-library .dw-sort-button:hover,
.pv8-library .dw-sort-button:focus-visible { color:var(--series-1); }
.pv8-library .dw-sort-button:focus-visible { outline:2px solid var(--series-1); outline-offset:3px; }
.pv8-library .dw-sort-indicator { color:var(--text-muted); font-size:13px; }
.pv8-library .dw-sort-button.active .dw-sort-indicator { color:var(--series-1); }
.pv8-library .direct-wire-result-upload {
  border:1px solid var(--pv8-divider);
  max-width:760px;
  padding:20px;
}
.pv8-library .direct-wire-result-upload h2 { margin:5px 0 8px; }
.pv8-library .direct-wire-result-file {
  align-items:center;
  border-bottom:1px solid var(--grid);
  border-top:1px solid var(--grid);
  display:grid;
  gap:10px;
  grid-template-columns:minmax(150px, .35fr) minmax(260px, 1fr);
  margin:18px 0 8px;
  padding:14px 0;
}
.pv8-library .direct-wire-result-file input { margin:0; width:100%; }
.pv8-library .direct-wire-result-upload-actions {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:16px;
}
.pv8-library .direct-wire-result-upload-actions .libbtn {
  background:var(--series-1);
  color:#fff;
  margin:0;
}
@media (max-width: 640px) {
  .pv8-library .direct-wire-result-file { grid-template-columns:1fr; }
}
.solution-card {
  background:#fff;
  border:1px solid var(--pv8-divider);
  margin:10px 0;
  padding:14px;
}
.solution-card > summary {
  align-items:center;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  list-style:none;
  margin:-4px 0 8px;
  padding:4px 0;
}
.solution-card > summary::-webkit-details-marker { display:none; }
.solution-card > summary::after {
  color:var(--text-secondary);
  content:"−";
  font-family:var(--pv8-mono);
  font-size:16px;
}
.solution-card:not([open]) > summary { margin-bottom:-4px; }
.solution-card:not([open]) > summary::after { content:"+"; }
.solution-card > summary b {
  display:block;
  font-size:17px;
  letter-spacing:-.015em;
  margin-top:2px;
}
.land-source {
  border:0;
  display:flex;
  gap:18px;
  margin:10px 0 6px;
  padding:0;
}
.land-source legend { font-weight:700; margin-bottom:4px; }
.land-objective-step { margin-bottom:12px; }
.land-objective-grid {
  display:grid;
  gap:10px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:10px;
}
.land-objective-grid > label {
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  color:var(--text-primary);
  cursor:pointer;
  display:block;
  min-height:112px;
  padding:15px 16px;
  text-align:left;
}
.land-objective-grid > label:hover { border-color:var(--series-1); }
.land-objective-grid > label.active {
  border-color:var(--series-1);
  box-shadow:inset 4px 0 0 var(--series-1);
}
.land-objective-grid input { position:absolute; opacity:0; pointer-events:none; }
.land-objective-grid b { display:block; font-size:17px; margin-bottom:5px; }
.land-objective-grid span { color:var(--text-secondary); display:block; line-height:1.4; }
.pv8-library .module-objective-step { margin-bottom:12px; }
.pv8-library .module-objective-grid {
  display:grid;
  gap:10px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:10px 0 7px;
}
.pv8-library .module-objective-grid > label {
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  cursor:pointer;
  display:block;
  min-height:116px;
  padding:15px 16px;
}
.pv8-library .module-objective-grid > label:hover { border-color:var(--series-1); }
.pv8-library .module-objective-grid > label.active {
  border-color:var(--series-1);
  box-shadow:inset 4px 0 0 var(--series-1);
}
.pv8-library .module-objective-grid input { opacity:0; pointer-events:none; position:absolute; }
.pv8-library .module-objective-grid b { display:block; font-size:17px; margin-bottom:5px; }
.pv8-library .module-objective-grid span { color:var(--text-secondary); display:block; line-height:1.4; }
.pv8-library .module-objective-grid.stacked-objective-grid {
  grid-template-columns:1fr;
  max-width:980px;
}
.pv8-library .module-objective-grid.stacked-objective-grid > label {
  min-height:0;
  padding:13px 16px;
}
.pv8-library .rep-coupled-choice {
  align-items:flex-start;
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  display:flex;
  gap:9px;
  margin:10px 0 6px;
  max-width:620px;
  padding:12px 14px;
}
.pv8-library .rep-coupled-choice input { margin-top:3px; min-height:0; }
.pv8-library .rep-coupled-choice b { display:block; margin-bottom:2px; }
.pv8-library .rep-coupled-choice span { color:var(--text-secondary); line-height:1.35; }
.pv8-library .unified-module-stage { margin:0; padding:0; }
@media(max-width:900px){.pv8-library .module-objective-grid{grid-template-columns:1fr}}
@media(max-width:720px){.land-objective-grid{grid-template-columns:1fr}}
.land-plot-choices {
  align-items:center;
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:7px 0;
  padding:9px;
}
.land-polygon-tools { margin:7px 0; }
.land-impact-empty,
.land-impact-summary {
  border-left:3px solid var(--pv8-divider);
  margin-top:10px;
  padding:8px 10px;
}
.land-impact-summary { border-color:var(--series-3); }
.pv8-library .land-valuation-dashboard {
  border-top:2px solid var(--text-primary);
  display:grid;
  gap:18px;
  margin-top:24px;
  padding-top:20px;
}
.pv8-library .land-dashboard-head {
  align-items:flex-start;
  display:flex;
  gap:24px;
  justify-content:space-between;
}
.pv8-library .land-dashboard-head h2 { margin:3px 0 6px; }
.pv8-library .land-dashboard-head p { margin:0; max-width:830px; }
.pv8-library .land-value-view {
  display:flex;
  flex:0 0 auto;
}
.pv8-library .land-value-view button {
  background:var(--surface-0);
  border:1px solid var(--pv8-divider);
  color:var(--text-primary);
  cursor:pointer;
  min-height:40px;
  padding:8px 13px;
}
.pv8-library .land-value-view button + button { border-left:0; }
.pv8-library .land-value-view button.active {
  background:var(--series-1);
  color:#fff !important;
}
.pv8-library .land-dashboard-controls {
  border:1px solid var(--pv8-divider);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.pv8-library .land-dashboard-controls label {
  border-left:1px solid var(--pv8-divider);
  display:grid;
  gap:11px;
  min-width:0;
  padding:16px;
}
.pv8-library .land-dashboard-controls label:first-child { border-left:0; }
.pv8-library .land-dashboard-controls label > span {
  display:grid;
  font-weight:650;
  gap:3px;
}
.pv8-library .land-dashboard-controls output {
  color:var(--series-1);
  font-family:var(--pv8-mono);
  font-size:18px;
}
.pv8-library .land-dashboard-controls input[type="range"] {
  accent-color:var(--series-1);
  cursor:pointer;
  margin:1px 0;
  width:100%;
}
.pv8-library .land-dashboard-controls small {
  color:var(--text-secondary);
  line-height:1.35;
}
.pv8-library .land-valuation-kpis {
  border:1px solid var(--pv8-divider);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.pv8-library .land-valuation-kpis > div {
  border-left:1px solid var(--pv8-divider);
  display:grid;
  gap:4px;
  padding:15px 16px;
}
.pv8-library .land-valuation-kpis > div:first-child {
  background:color-mix(in srgb,var(--series-3) 7%,#fff);
  border-left:0;
}
.pv8-library .land-valuation-kpis span,
.pv8-library .land-valuation-kpis small { color:var(--text-secondary); }
.pv8-library .land-valuation-kpis b {
  font-family:var(--pv8-mono);
  font-size:23px;
  letter-spacing:-.03em;
}
.pv8-library .land-valuation-grid {
  display:grid;
  gap:28px;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
}
.pv8-library .land-valuation-grid h3 { margin:0 0 4px; }
.pv8-library .land-valuation-grid p { margin:0 0 12px; }
.pv8-library .land-yield-chart { display:grid; gap:6px; }
.pv8-library .land-yield-chart button {
  align-items:center;
  background:transparent;
  border:0;
  color:var(--text-primary);
  cursor:pointer;
  display:grid;
  gap:10px;
  grid-template-columns:42px minmax(80px,1fr) 104px;
  padding:5px 7px;
  text-align:left;
}
.pv8-library .land-yield-chart button:hover,
.pv8-library .land-yield-chart button.selected {
  background:color-mix(in srgb,var(--series-1) 7%,#fff);
}
.pv8-library .land-yield-chart i {
  background:var(--surface-2);
  display:block;
  height:10px;
  overflow:hidden;
}
.pv8-library .land-yield-chart i b {
  background:var(--series-3);
  display:block;
  height:100%;
}
.pv8-library .land-yield-chart button.selected i b { background:var(--series-1); }
.pv8-library .land-yield-chart strong {
  font-family:var(--pv8-mono);
  text-align:right;
}
.pv8-library .land-selected-case {
  border:1px solid var(--pv8-divider);
  padding:15px;
}
.pv8-library .land-selected-primary {
  border-bottom:1px solid var(--pv8-divider);
  display:grid;
  gap:4px;
  margin-bottom:11px;
  padding-bottom:12px;
}
.pv8-library .land-selected-primary span,
.pv8-library .land-selected-primary small { color:var(--text-secondary); }
.pv8-library .land-selected-primary b {
  font-family:var(--pv8-mono);
  font-size:28px;
  letter-spacing:-.04em;
}
.pv8-library .land-selected-case dl {
  display:grid;
  gap:7px 14px;
  grid-template-columns:1fr auto;
  margin:0;
}
.pv8-library .land-selected-case dt { color:var(--text-secondary); }
.pv8-library .land-selected-case dd {
  font-family:var(--pv8-mono);
  font-weight:650;
  margin:0;
}
.pv8-library .land-selected-case p { font-size:12px; margin:13px 0 0; }
@media(max-width:1000px){
  .pv8-library .land-dashboard-controls,
  .pv8-library .land-valuation-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pv8-library .land-dashboard-controls label:nth-child(3),
  .pv8-library .land-valuation-kpis > div:nth-child(3) { border-left:0; border-top:1px solid var(--pv8-divider); }
  .pv8-library .land-dashboard-controls label:nth-child(4),
  .pv8-library .land-valuation-kpis > div:nth-child(4) { border-top:1px solid var(--pv8-divider); }
}
@media(max-width:720px){
  .pv8-library .land-dashboard-head { display:grid; }
  .pv8-library .land-valuation-grid { grid-template-columns:1fr; }
}
@media(max-width:560px){
  .pv8-library .land-dashboard-controls,
  .pv8-library .land-valuation-kpis { grid-template-columns:1fr; }
  .pv8-library .land-dashboard-controls label,
  .pv8-library .land-valuation-kpis > div { border-left:0; border-top:1px solid var(--pv8-divider); }
  .pv8-library .land-dashboard-controls label:first-child,
  .pv8-library .land-valuation-kpis > div:first-child { border-top:0; }
}
.solution-card h3 {
  font-size:17px;
  letter-spacing:-.015em;
  margin:2px 0 7px;
}

/* Agrivoltaics: owner decision journey and value dashboard. */
.pv8-library .agri-owner-step { max-width:1040px; }
.pv8-library .agri-owner-step > h3 {
  font-size:20px;
  letter-spacing:-.02em;
  margin:0 0 14px;
}
.pv8-library .agri-choice-grid {
  display:grid;
  gap:8px;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.pv8-library .agri-choice-grid.compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pv8-library .agri-choice {
  align-items:flex-start;
  border:1px solid var(--pv8-divider);
  cursor:pointer;
  display:flex;
  gap:10px;
  min-height:88px;
  padding:14px;
}
.pv8-library .agri-choice:has(input:checked) {
  background:color-mix(in srgb,var(--series-3) 7%,#fff);
  border-color:var(--series-3);
  box-shadow:inset 4px 0 0 var(--series-3);
}
.pv8-library .agri-choice input { margin-top:3px; width:auto; }
.pv8-library .agri-choice b,
.pv8-library .agri-choice small { display:block; }
.pv8-library .agri-choice b { font-size:14px; line-height:1.25; }
.pv8-library .agri-choice small { color:var(--text-secondary); font-size:12px; line-height:1.4; margin-top:5px; }
.pv8-library .ev-sizing-choice {
  display:grid;
  gap:10px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:920px;
}
.pv8-library .ev-sizing-choice label {
  align-items:flex-start;
  border:1px solid var(--pv8-divider);
  cursor:pointer;
  display:flex;
  gap:10px;
  margin:0;
  min-height:96px;
  padding:16px;
}
.pv8-library .ev-sizing-choice label:has(input:checked) {
  background:color-mix(in srgb,var(--series-3) 7%,#fff);
  border-color:var(--series-3);
  box-shadow:inset 4px 0 0 var(--series-3);
}
.pv8-library .ev-sizing-choice input { margin-top:3px; min-height:0; width:auto; }
.pv8-library .ev-sizing-choice b,
.pv8-library .ev-sizing-choice small { display:block; }
.pv8-library .ev-sizing-choice b { font-size:16px; line-height:1.25; }
.pv8-library .ev-sizing-choice small {
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.45;
  margin-top:6px;
}
.pv8-library .agri-inline-input {
  align-items:center;
  display:flex;
  gap:8px;
  margin-top:14px;
  max-width:520px;
}
.pv8-library .agri-inline-input input { margin-left:auto; width:92px; }
.pv8-library .agri-form-grid {
  display:grid;
  gap:14px 18px;
  grid-template-columns:repeat(2,minmax(230px,1fr));
  max-width:920px;
}
.pv8-library .agri-form-grid label { display:flex; flex-direction:column; gap:6px; }
.pv8-library .agri-form-grid input,
.pv8-library .agri-form-grid select { margin:0; width:100%; }
.pv8-library .agri-form-grid small { color:var(--text-muted); font-size:11px; line-height:1.35; }
.pv8-library .agri-decision-head {
  align-items:flex-start;
  border-left:6px solid var(--series-3);
  display:flex;
  gap:22px;
  justify-content:space-between;
  margin:0 0 14px;
  padding:8px 14px;
}
.pv8-library .agri-decision-head .eyebrow {
  color:var(--series-3);
  display:block;
  font-size:11px;
  font-weight:800;
  font-family:var(--pv8-sans);
  letter-spacing:.01em;
  text-transform:uppercase;
}
.pv8-library .agri-decision-head h2 { font-size:28px; margin:3px 0 5px; }
.pv8-library .agri-decision-head p { color:var(--text-secondary); margin:0; max-width:850px; }
.pv8-library .agri-route-table-wrap { overflow-x:auto; }
.pv8-library .agri-route-table { table-layout:fixed; min-width:1100px; }
.pv8-library .agri-route-table .agri-rank { width:48px; }
.pv8-library .agri-route-table .agri-route { width:27%; }
.pv8-library .agri-route-table .agri-value { width:16%; }
.pv8-library .agri-route-table .agri-pv { width:13%; }
.pv8-library .agri-route-table .agri-capex { width:16%; }
.pv8-library .agri-route-table .agri-next { width:auto; }
.pv8-library .agri-route-table td { vertical-align:top; }
.pv8-library .agri-priority { background:#e5e7eb; height:5px; margin:8px 0; width:100%; }
.pv8-library .agri-priority i { background:var(--series-3); display:block; height:100%; }
.pv8-library .agri-gate-note { color:#9f2d1b; font-size:11px; margin-top:5px; }
.pv8-library .agri-decision-grid {
  display:grid;
  gap:18px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:18px 0;
}
.pv8-library .agri-decision-grid > section { border-top:3px solid var(--pv8-divider); padding-top:10px; }
.pv8-library .agri-shortlist-row { align-items:center; border-bottom:1px solid var(--pv8-divider); display:flex; justify-content:space-between; padding:9px 0; }
.pv8-library .agri-shortlist-row span { color:var(--text-secondary); font-size:12px; }
.pv8-library .agri-action-grid {
  display:grid;
  gap:8px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.pv8-library .agri-action-grid details { border:1px solid var(--pv8-divider); padding:12px 14px; }
.pv8-library .agri-action-grid summary { cursor:pointer; font-weight:750; }
.pv8-library .agri-action-grid li { margin-bottom:5px; }

@media (max-width:900px) {
  .pv8-library .agri-choice-grid,
  .pv8-library .agri-choice-grid.compact,
  .pv8-library .agri-form-grid,
  .pv8-library .agri-decision-grid,
  .pv8-library .agri-action-grid { grid-template-columns:1fr; }
  .pv8-library .agri-decision-head { flex-direction:column; }
}
.solution-kicker {
  color:var(--series-1);
  font-family:var(--pv8-caption);
  font-size:10px;
  font-weight:650;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.module-journey-nav {
  border-bottom:1px solid var(--pv8-divider);
  border-top:1px solid var(--pv8-divider);
  margin:12px 0 18px;
  padding:12px 0;
}
.module-draft-status {
  align-items:center;
  box-sizing:border-box;
  display:flex;
  gap:8px;
  min-height:36px;
}
.module-journey-progress {
  display:grid;
  gap:0;
  grid-template-columns:repeat(var(--journey-count,4),minmax(110px,1fr));
  overflow-x:auto;
}
.module-journey-progress button {
  background:#fff;
  border:1px solid var(--pv8-divider);
  border-left:0;
  color:var(--text-secondary);
  cursor:pointer;
  min-height:58px;
  padding:8px 10px;
  text-align:left;
}
.module-journey-progress button:first-child { border-left:1px solid var(--pv8-divider); }
.module-journey-progress button:disabled { cursor:default; opacity:.52; }
.module-journey-progress button[data-state="current"] {
  background:var(--pv8-accent-soft);
  box-shadow:inset 0 -3px 0 var(--series-1);
  color:var(--text-primary);
  opacity:1;
}
.module-journey-progress button[data-state="complete"],
.module-journey-progress button[data-state="skipped"] { opacity:1; }
.module-journey-progress button[data-state="blocked"] {
  background:#fff6f2;
  border-color:#d9a998;
  opacity:1;
}
.module-journey-progress button[data-readiness="blocked"] .journey-state {
  color:var(--serious);
}
.module-journey-progress b { display:block; font-size:12px; line-height:1.25; }
.module-journey-progress .journey-state {
  display:block;
  font:650 10px/1.2 var(--pv8-caption);
  letter-spacing:.035em;
  margin-bottom:3px;
  text-transform:uppercase;
}
.module-journey-step-head { margin:0 0 14px; max-width:820px; }
.module-journey-step-head h3 { font-size:20px; letter-spacing:-.02em; margin:0 0 4px; }
.module-journey-step-head p { color:var(--text-secondary); font-size:13px; }
.module-journey-readiness-overview {
  box-sizing:border-box;
  margin-top:9px;
  min-height:40px;
  overflow:hidden;
}
.journey-readiness-banner {
  align-items:baseline;
  border-left:4px solid var(--pv8-divider);
  display:flex;
  flex-wrap:wrap;
  gap:5px 12px;
  padding:6px 10px;
}
.journey-readiness-banner b { font-size:12px; }
.journey-readiness-banner span { color:var(--text-secondary); font-size:11px; }
.journey-readiness-banner.blocked { background:#fff6f2; border-color:var(--serious); }
.journey-readiness-banner.blocked b { color:var(--serious); }
.journey-readiness-banner.upcoming { background:#f7faf9; border-color:var(--series-1); }
.journey-readiness-banner.upcoming b { color:var(--series-1); }
.journey-readiness-banner.ready { background:#f2faf5; border-color:var(--good); }
.journey-readiness-banner.ready b { color:var(--good); }
.journey-readiness-banner button {
  background:#fff;
  border:1px solid var(--pv8-divider);
  color:var(--series-1);
  cursor:pointer;
  font-size:10px;
  margin-left:auto;
  padding:3px 7px;
}
.journey-step-readiness {
  border:1px solid var(--pv8-divider);
  margin-top:10px;
  padding:9px 10px;
}
.journey-step-readiness.blocked { background:#fff6f2; border-color:#d9a998; }
.journey-step-readiness.ready { background:#f7fbf8; border-color:#a9cfb5; }
.journey-step-readiness.neutral { background:#fafafa; color:var(--text-secondary); }
.journey-step-readiness > b,.journey-step-readiness > span { display:block; font-size:11px; }
.journey-step-readiness ul,.journey-review-readiness ul,.journey-review-improvements ul {
  list-style:none;
  margin:7px 0 0;
  padding:0;
}
.journey-step-readiness li,.journey-review-readiness li,.journey-review-improvements li {
  align-items:start;
  display:grid;
  gap:4px 8px;
  grid-template-columns:18px minmax(0,1fr) auto;
  margin:5px 0;
}
.journey-step-readiness li > span,.journey-review-readiness li > span,.journey-review-improvements li > span {
  font:700 11px var(--pv8-mono);
}
.journey-step-readiness li.met > span,.journey-review-readiness li.met > span { color:var(--good); }
.journey-step-readiness li.required > span,.journey-review-readiness li.required > span { color:var(--serious); }
.journey-step-readiness li.recommended > span,.journey-review-readiness li.recommended > span,
.journey-review-improvements li.recommended > span { color:var(--warning); }
.journey-step-readiness li b,.journey-review-readiness li b,.journey-review-improvements li b { font-size:11px; }
.journey-step-readiness li small,.journey-review-readiness li small,.journey-review-improvements li small {
  color:var(--text-secondary);
  display:block;
  font-size:11px;
  font-weight:400;
  margin-top:2px;
}
.journey-step-readiness li button,.journey-review-readiness li button,.journey-review-improvements li button {
  background:#fff;
  border:1px solid var(--pv8-divider);
  color:var(--series-1);
  cursor:pointer;
  font-size:10px;
  padding:3px 6px;
}
.module-journey-actions {
  border-top:1px solid var(--pv8-divider);
  display:block;
  margin-top:18px;
  padding-top:14px;
}
.module-journey-button-row {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px clamp(18px,3vw,44px);
  justify-content:space-between;
}
.module-journey-actions .journey-back { margin-right:0; }
.module-journey-button-row > button {
  align-self:stretch;
  min-height:44px;
}
.module-journey-actions .journey-rerun-note {
  display:block;
  font-size:11px;
  margin:7px 0 0;
}
.module-journey-actions .journey-submit-status,
.grid-capacity-loading .journey-submit-status,
.module-run-standalone-status {
  align-items:center;
  background:#fff6f2;
  border-left:4px solid var(--serious);
  box-sizing:border-box;
  color:var(--text-primary);
  display:grid;
  font-size:12px;
  gap:12px;
  grid-template-columns:28px minmax(0,1fr) auto;
  line-height:1.4;
  margin-top:12px;
  min-height:64px;
  padding:10px 12px;
  width:100%;
}
.module-journey-actions .journey-submit-status[hidden] { display:none; }
.journey-submit-status .journey-run-copy {
  display:grid;
  gap:2px;
  min-width:0;
}
.journey-submit-status > .pv8-progress-layout {
  grid-column:1 / -1;
  min-width:0;
}
.journey-submit-status .journey-run-copy b { font-size:12px; }
.journey-submit-status .journey-run-copy span { color:var(--text-secondary); }
.journey-submit-status .spin8 {
  color:var(--series-1);
  font-size:24px;
  line-height:1;
  margin:0;
}
.journey-submit-status .journey-run-cancel {
  margin:0!important;
  white-space:nowrap;
}
.journey-submit-status:not(.running) { grid-template-columns:minmax(0,1fr); }
.module-journey-actions .journey-submit-status.running,
.grid-capacity-loading .journey-submit-status.running,
.module-run-standalone-status.running {
  background:color-mix(in srgb, var(--series-1) 7%, #fff);
  border-left:4px solid var(--series-1);
}
.grid-capacity-loading .journey-submit-status {
  max-width:620px;
}
.journey-submit-status[hidden],
.module-run-standalone-status[hidden],
.grid-capacity-loading .journey-submit-status[hidden] { display:none; }
.module-journey-actions .journey-primary {
  background:var(--series-3);
  border-color:var(--series-3);
  color:#fff;
  font-weight:700;
  min-height:38px;
  padding:7px 16px;
}
.module-journey-actions .journey-primary:disabled {
  background:#ddd7d3;
  border-color:#ccc4bf;
  color:#6d6865;
  cursor:not-allowed;
}
.module-run-control-running,
.module-journey-actions .journey-primary.module-run-control-running:disabled {
  background:var(--series-1)!important;
  border-color:var(--series-1)!important;
  color:#fff!important;
  cursor:progress!important;
  opacity:1!important;
}
@media(max-width:560px) {
  .module-journey-actions .journey-submit-status,
  .grid-capacity-loading .journey-submit-status,
  .module-run-standalone-status {
    gap:8px;
    grid-template-columns:24px minmax(0,1fr);
  }
  .journey-submit-status:not(.running) { grid-template-columns:minmax(0,1fr); }
  .journey-submit-status .journey-run-cancel { grid-column:2; justify-self:start; }
}
.module-journey-review {
  background:#fff;
  border:1px solid var(--pv8-divider);
  padding:14px;
}
.module-journey-review h3 { font-size:20px; margin-bottom:4px; }
.module-journey-review > p { color:var(--text-secondary); margin-bottom:12px; }
.journey-review-readiness { border-left:4px solid var(--good); margin-bottom:10px; padding:9px 11px; }
.journey-review-readiness.blocked { background:#fff6f2; border-color:var(--serious); }
.journey-review-readiness.ready { background:#f2faf5; }
.journey-review-readiness h4 { font-size:13px; margin:0; }
.journey-review-readiness p { color:var(--text-secondary); font-size:12px; margin:5px 0 0; }
.journey-review-improvements { border:1px solid var(--pv8-divider); margin-bottom:12px; padding:8px 10px; }
.journey-review-improvements summary { cursor:pointer; font-size:12px; font-weight:700; }
.journey-review-section { border-top:1px solid var(--pv8-divider); padding:10px 0; }
.journey-review-section:first-of-type { border-top:0; }
.journey-review-section h4 { font-size:13px; margin-bottom:6px; }
.journey-review-section dl {
  display:grid;
  gap:5px 18px;
  grid-template-columns:minmax(170px,260px) minmax(0,1fr);
}
.journey-review-section dt { color:var(--text-secondary); font-size:12px; }
.journey-review-section dd { font:500 12px var(--pv8-mono); margin:0; overflow-wrap:anywhere; }
.journey-review-empty { color:var(--text-muted); font-size:12px; }
.guided-journey-active .journey-native-nav,
.guided-journey-active .journey-native-action { display:none !important; }
.module-journey-draft-note { color:var(--text-muted); font-size:11px; margin-right:auto; }
.pv8-library .recycling-edit-inputs { margin-left:auto; }
.pv8-library .recycling-layer-intro {
  border-left:4px solid var(--series-1);
  margin:14px 0;
  max-width:980px;
  padding:2px 0 2px 14px;
}
.pv8-library .recycling-layer-intro h2 { margin:3px 0 4px; }
.pv8-library .recycling-layer-intro p { color:var(--text-secondary); margin:0; }
.pv8-library #recyclingRouteSummary .metric small,
.pv8-library #recyclingEvidenceResults .metric small {
  color:var(--text-secondary);
  display:block;
  font-size:11px;
  margin-top:4px;
}
.pv8-library #recyclingEvidenceResults h3 { font-size:16px; margin:18px 0 7px; }
.pv8-library .recycling-evidence-table td:nth-child(2) {
  font-family:var(--pv8-mono);
  white-space:nowrap;
  width:1%;
}
.pv8-library .recycling-next-actions { margin:0 0 14px 20px; }
.pv8-library .recycling-next-actions li { margin:5px 0; }
.pv8-library .recycling-assumptions {
  border-bottom:1px solid var(--pv8-divider);
  border-top:1px solid var(--pv8-divider);
  margin:16px 0;
  padding:10px 0;
}
.pv8-library .recycling-assumptions summary { cursor:pointer; font-weight:700; }
.pv8-library .recycling-assumptions ul { color:var(--text-secondary); margin:10px 0 0 18px; }
.pv8-library .module-assumptions {
  background:#fafafa;
  border:1px solid var(--pv8-divider);
  margin:16px 0;
}
.pv8-library .module-assumptions > summary {
  align-items:center;
  cursor:pointer;
  display:grid;
  gap:8px 12px;
  grid-template-columns:minmax(0,1fr) auto auto;
  list-style:none;
  padding:11px 13px;
}
.pv8-library .module-assumptions > summary::-webkit-details-marker { display:none; }
.pv8-library .module-assumptions > summary span { min-width:0; }
.pv8-library .module-assumptions > summary b { display:block; font-size:13px; }
.pv8-library .module-assumptions > summary small {
  color:var(--text-muted);
  display:block;
  font-size:10px;
  font-weight:400;
  margin-top:1px;
}
.pv8-library .module-assumptions > summary em {
  background:#eceae6;
  border-radius:999px;
  color:var(--text-secondary);
  font:600 10px var(--pv8-mono);
  min-width:24px;
  padding:3px 7px;
  text-align:center;
}
.pv8-library .module-assumptions > summary::after {
  color:var(--series-1);
  content:"Show assumptions +";
  font:600 10px var(--pv8-mono);
  white-space:nowrap;
}
.pv8-library .module-assumptions[open] > summary::after { content:"Hide assumptions −"; }
.pv8-library .module-assumptions[open] > summary {
  border-bottom:1px solid var(--pv8-divider);
}
.pv8-library .module-assumptions-body { padding:10px 14px 12px; }
.pv8-library .wind-wtg-parcel {
  margin-top:7px;
  padding-top:6px;
  border-top:1px solid var(--pv8-divider);
  min-width:150px;
  line-height:1.35;
}
.pv8-library .module-assumptions-body ul {
  color:var(--text-secondary);
  margin:0 0 0 18px;
}
.pv8-library .module-assumptions-body li { margin:5px 0; }
@media (max-width:640px) {
  .pv8-library .module-assumptions > summary { grid-template-columns:minmax(0,1fr) auto; }
  .pv8-library .module-assumptions > summary::after { grid-column:1/-1; }
}
.pv8-library .direct-wire-known-grid {
  display:grid;
  gap:10px 14px;
  grid-template-columns:repeat(3,minmax(170px,1fr));
  margin-bottom:8px;
  max-width:980px;
}
.pv8-library .direct-wire-known-grid label { display:flex; flex-direction:column; gap:4px; }
.pv8-library .direct-wire-known-grid input { width:100%; }
.pv8-library .direct-wire-result-tabs {
  align-items:center;
  border-bottom:1px solid var(--pv8-divider);
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:10px 0;
  padding-bottom:8px;
}
.pv8-library .direct-wire-result-tabs > span { flex:1; }
.solution-tabs { display:flex; border:1px solid var(--pv8-divider); }
.solution-tabs button {
  background:#fff;
  border:0;
  border-left:1px solid var(--pv8-divider);
  color:var(--text-primary);
  cursor:pointer;
  flex:1;
  font-weight:600;
  padding:10px 12px;
}
.solution-tabs button:first-child { border-left:0; }
.solution-tabs button.active { background:var(--series-1); color:#fff !important; }

@media(max-width:760px) {
  .module-journey-progress { grid-template-columns:repeat(var(--journey-count,4),minmax(145px,1fr)); }
  .journey-review-section dl { grid-template-columns:1fr; gap:2px; }
  .journey-review-section dd { margin-bottom:6px; }
  .module-journey-actions { align-items:stretch; gap:8px 10px; }
  .module-journey-actions > button { flex:1 1 145px; }
  .module-journey-actions .journey-back { margin-right:0; }
  .pv8-library .recycling-edit-inputs { margin-left:0; }
  .pv8-library .direct-wire-known-grid { grid-template-columns:1fr; }
  .pv8-library .direct-wire-result-tabs > span { display:none; }
}
.customer-candidate { border-top:1px solid var(--pv8-divider); padding-top:12px; }
.candidate-source-choice { display:flex; flex-wrap:wrap; gap:18px; margin:10px 0 14px; }
.candidate-source-choice label { align-items:center; display:inline-flex !important; gap:6px; margin:0 !important; }
.candidate-source-choice input { min-height:0; }
[hidden] { display:none !important; }
.customer-upload-row,
.customer-fields { align-items:end; display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.customer-upload-row label,
.customer-fields label { display:flex; flex-direction:column; gap:3px; }
.layer-bar { display:flex; flex-wrap:wrap; gap:12px; padding:8px 0; }
.layer-bar label { align-items:center; display:inline-flex !important; gap:5px; margin:0 !important; }
.libbtn.primary { background:var(--series-1); border-color:var(--series-1); color:#fff; }
.pv8-library #result > .muted:first-child {
  border:1px dashed var(--pv8-divider);
  display:block;
  padding:18px;
}

/* The create and data-room pages use the same typography, colour and geometry. */
.pv8-form-page,
.pv8-profile {
  background:#fff;
  color:var(--text-primary);
  font-family:var(--pv8-sans);
}
.pv8-form-page,
.pv8-profile { margin:0; max-width:none; padding:0; }
.pv8-form-page > form,
.pv8-profile > section,
.pv8-profile > .card,
.pv8-profile > .profile-nav {
  margin-left:auto;
  margin-right:auto;
  max-width:980px;
}
.pv8-form-page > form,
.pv8-profile > section,
.pv8-profile > .card { padding-left:20px; padding-right:20px; }
.pv8-form-page > header,
.pv8-profile > header {
  align-items:center;
  border-bottom:2px solid var(--pv8-divider);
  display:flex;
  gap:24px;
  margin-bottom:18px;
  min-height:64px;
  padding:12px 22px;
}
.pv8-form-page .card,
.pv8-profile .card {
  background:var(--surface-1);
  border:1px solid var(--pv8-divider);
  border-radius:0;
}
.pv8-form-page input,
.pv8-form-page select,
.pv8-profile input,
.pv8-profile select {
  background:#fff;
  border-color:var(--pv8-divider);
  border-radius:0;
}
.pv8-form-page button,
.pv8-profile button { background:var(--series-1); border-radius:0; }
.pv8-profile #drop { border-radius:0; }
.pv8-profile .bar,
.pv8-profile .pill { border-radius:0; }
.pv8-profile .profile-nav {
  border-bottom:1px solid var(--pv8-divider);
  display:flex;
  gap:0;
  margin-bottom:16px;
  position:sticky;
  top:0;
  z-index:10;
}
.pv8-profile .profile-nav a {
  background:#fff;
  border:1px solid var(--pv8-divider);
  border-bottom:0;
  color:var(--text-primary);
  padding:8px 12px;
  text-decoration:none;
}
.pv8-profile .profile-nav a + a { border-left:0; }
.pv8-profile .profile-nav a:hover { background:var(--pv8-accent-soft); }
.document-actions { display:flex; gap:8px; justify-content:flex-end; }
.document-actions a { font-size:11px; }
.profile-title-row {
  align-items:center;
  display:flex;
  justify-content:space-between;
  margin-bottom:14px;
  padding:2px 0;
}
.profile-title-row h1 { font-size:22px; margin-top:3px; }
.pv8-profile .danger-action {
  background:#fff;
  border:1px solid var(--serious);
  color:var(--serious);
  margin:0;
}
.pv8-profile .danger-action:hover { background:var(--pv8-accent-soft); }
.profile-metrics {
  border:1px solid var(--pv8-divider);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin-bottom:16px;
}
.profile-metric { border-left:1px solid var(--pv8-divider); padding:12px; }
.profile-metric:nth-child(3n+1) { border-left:0; }
.profile-metric:nth-child(n+4) { border-top:1px solid var(--pv8-divider); }
.profile-metric span {
  color:var(--text-secondary);
  display:block;
  font-size:9px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.profile-metric b { font-family:var(--pv8-mono); font-size:18px; }
.pv8-profile section[id] { scroll-margin-top:52px; }

@media (max-width:1100px) {
  .asset-summary { grid-template-columns:repeat(3,1fr); }
  .summary-cell:nth-child(4) { border-left:0; border-top:1px solid var(--pv8-divider); }
  .summary-cell:nth-child(n+4) { border-top:1px solid var(--pv8-divider); }
  .pv8-library .layout { grid-template-columns:240px minmax(0,1fr); }
  .pv8-library .layout.assets-collapsed { grid-template-columns:42px minmax(0,1fr); }
  .pv8-library .decision-journey { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pv8-library .decision-step:nth-child(3) { border-left:1px solid var(--pv8-divider); }
}

@media (max-width:760px) {
  .pv8-library > header { align-items:flex-start; flex-wrap:wrap; gap:10px 16px; }
  .pv8-tagline { display:none; }
  .pv8-nav { margin-left:0; order:3; width:100%; }
  .pv8-library .layout { grid-template-columns:1fr; }
  .pv8-library .layout.assets-collapsed { grid-template-columns:42px minmax(0,1fr); }
  .pv8-library .layout > div:first-child { border-bottom:2px solid var(--pv8-divider); border-right:0; }
  .pv8-library .workspace-head { align-items:flex-start; flex-direction:column; }
  .pv8-library #dataroom { margin-left:0 !important; text-align:left; }
  .pv8-library .module-workspace { padding:16px 14px 30px; }
  .pv8-library .decision-journey { grid-template-columns:1fr; }
  .pv8-library .decision-step { border-left:1px solid var(--pv8-divider); min-height:180px; }
  .profile-metrics { grid-template-columns:repeat(2,1fr); }
  .profile-metric:nth-child(3n+1) { border-left:1px solid var(--pv8-divider); }
  .profile-metric:nth-child(2n+1) { border-left:0; }
  .profile-metric:nth-child(n+3) { border-top:1px solid var(--pv8-divider); }
  .pv8-library .mdc-dashboard-head { align-items:flex-start; flex-direction:column; }
  .pv8-library .mdc-energy-controls,
  .pv8-library .mdc-energy-visuals,
  .pv8-library .ev-energy-controls,
  .pv8-library .ev-energy-visuals,
  .pv8-library .ev-reconciliation-grid,
  .pv8-library .ev-capex-line-grid,
  .pv8-library .ev-capex-provenance { grid-template-columns:1fr; }
  .pv8-library .mdc-cost-controls {
    border-left:0;
    border-top:1px solid var(--pv8-divider);
    padding-left:0;
    padding-top:14px;
  }
  .pv8-library .mdc-energy-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pv8-library .ev-cost-controls {
    border-left:0;
    border-top:1px solid var(--pv8-divider);
    padding-left:0;
    padding-top:14px;
  }
  .pv8-library .ev-energy-input-grid { grid-template-columns:repeat(2,minmax(180px,1fr)); }
  .pv8-library .ev-finance-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pv8-library .mdc-energy-kpis article:nth-child(3) {
    border-left:0;
  }
  .pv8-library .mdc-energy-kpis article:nth-child(n+3) {
    border-top:1px solid var(--pv8-divider);
  }
}

@media (max-width:520px) {
  .asset-summary { grid-template-columns:repeat(2,1fr); }
  .summary-cell:nth-child(3),
  .summary-cell:nth-child(5) { border-left:0; }
  .summary-cell:nth-child(n+3) { border-top:1px solid var(--pv8-divider); }
  .pv8-library .header-action { font-size:11px; }
  .pv8-library .objective-entry-row { flex-direction:column; }
  .pv8-library .objective-entry .libbtn { min-height:42px; }
  .pv8-library .mdc-energy-balance td:first-child {
    min-width:0;
    width:58%;
  }
  .pv8-library .mdc-energy-kpis { grid-template-columns:1fr; }
  .pv8-library .ev-energy-input-grid,
  .pv8-library .ev-cost-controls,
  .pv8-library .ev-finance-kpis { grid-template-columns:1fr; }
  .pv8-library .ev-capex-mode-label,
  .pv8-library .ev-capex-line-grid label,
  .pv8-library .ev-capex-provenance label { align-items:stretch; flex-direction:column; }
  .pv8-library .ev-capex-mode-label select,
  .pv8-library .ev-capex-line-grid input,
  .pv8-library .ev-capex-provenance input,
  .pv8-library .ev-capex-provenance select { margin-left:0; min-width:0; width:100%; }
  .pv8-library .ev-cost-controls h3 { grid-column:auto; }
  .pv8-library .mdc-energy-kpis article,
  .pv8-library .mdc-energy-kpis article:nth-child(3) {
    border-left:0;
    border-top:1px solid var(--pv8-divider);
  }
  .pv8-library .mdc-energy-kpis article:first-child { border-top:0; }
  .pv8-library .mdc-download-recommendation dl { grid-template-columns:1fr; }
  .pv8-library .mdc-download-recommendation dl > div,
  .pv8-library .mdc-download-recommendation dl > div:first-child {
    border-left:0;
    border-top:1px solid var(--pv8-divider);
    padding:8px 0;
  }
  .pv8-library .mdc-download-recommendation dl > div:first-child { border-top:0; }
  .pv8-library .mdc-price-bars { gap:6px; padding-left:0; padding-right:0; }
  .pv8-library .mdc-price-year small { font-size:9px; }
}

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; }
}

/* -------------------------------------------------------------------------
   PV8 premium product system — 2026-08-22

   A calmer, decision-grade layer over the existing application semantics.
   The interface deliberately uses one quiet surface language and reserves
   colour for actions, evidence state and financial meaning.
   ------------------------------------------------------------------------- */
:root {
  --surface-0:#f3f6f4;
  --surface-1:#ffffff;
  --border:#d7dfdb;
  --grid:#e7ece9;
  --text-primary:#14231f;
  --text-secondary:#53635e;
  --text-muted:#7c8b86;
  --series-1:#116b55;
  --series-2:#2d8b72;
  --series-3:#0b7a5a;
  --series-4:#084f40;
  --good:#0b7355;
  --warning:#a66d16;
  --serious:#b33a3a;
  --pv8-accent-soft:#eaf4f0;
  --pv8-ink-soft:#edf1ef;
  --pv8-divider:#d7dfdb;
  --pv8-navy:#102a24;
  --pv8-navy-2:#173a32;
  --pv8-solar:#d8a035;
  --pv8-shadow-sm:0 1px 2px rgba(15,42,35,.05),0 5px 16px rgba(15,42,35,.04);
  --pv8-shadow-md:0 2px 4px rgba(15,42,35,.05),0 14px 34px rgba(15,42,35,.08);
  --pv8-radius-sm:6px;
  --pv8-radius:10px;
  --pv8-radius-lg:14px;
}

html { background:var(--surface-0); }
body {
  background:var(--surface-0);
  color:var(--text-primary);
  font-family:var(--pv8-sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a { color:var(--series-1); }
a:hover { color:var(--series-4); }
::selection { background:#cde5dc; color:var(--pv8-navy); }

.pv8-brand { align-items:center; gap:16px; }
.pv8-brand :is(h1,.pv8-wordmark) {
  color:var(--pv8-navy);
  font-size:22px;
  font-weight:800;
  letter-spacing:-.045em;
}
.pv8-brand :is(h1,.pv8-wordmark) span { color:var(--series-1); }
.pv8-tagline {
  border-left:1px solid var(--border);
  color:var(--text-muted);
  font-family:var(--pv8-mono);
  font-size:9px;
  font-weight:500;
  letter-spacing:.035em;
}

.pv8-library > header,
.pv8-profile > header,
.pv8-form-page > header,
.pv8-faq > header,
.pv8-terms > header {
  align-items:center;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px) saturate(1.15);
  border-bottom:1px solid var(--border);
  box-shadow:0 1px 0 rgba(15,42,35,.02);
  display:flex;
  gap:24px;
  margin:0;
  min-height:68px;
  padding:12px 28px;
  position:relative;
  z-index:40;
}
.pv8-nav { gap:6px; }
.pv8-nav a {
  border-radius:6px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:600;
  padding:7px 9px;
}
.pv8-nav a:hover { background:var(--pv8-accent-soft); color:var(--series-4); }
.pv8-nav a[aria-current="page"] { background:var(--pv8-accent-soft); color:var(--series-1); }
.header-action.secondary { color:var(--text-muted) !important; }

/* Paid-product actions: one primary action, quiet secondary actions. */
.pv8-button {
  align-items:center;
  border:1px solid transparent;
  border-radius:7px;
  display:inline-flex;
  font-size:12px;
  font-weight:700;
  justify-content:center;
  min-height:38px;
  padding:9px 14px;
  text-decoration:none;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.pv8-button:hover { transform:translateY(-1px); }
.pv8-button.primary { background:var(--series-1); color:#fff; box-shadow:0 5px 14px rgba(17,107,85,.16); }
.pv8-button.primary:hover { background:var(--series-4); color:#fff; }
.pv8-button.secondary { background:#fff; border-color:var(--border); color:var(--text-primary); }
.pv8-button.secondary:hover { background:var(--surface-0); border-color:#b7c5bf; color:var(--text-primary); }
.pv8-button.text { background:transparent; border-color:transparent; color:var(--series-1); }
.pv8-button.text:hover { background:var(--pv8-accent-soft); color:var(--series-4); }

/* First visit: lead with the owner's outcome, then keep orientation optional. */
.first-visit-welcome {
  background:#f4f7f5;
  border-radius:var(--pv8-radius-lg);
  box-shadow:var(--pv8-shadow-md);
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(270px,.8fr);
  min-height:390px;
  overflow:hidden;
}
.first-visit-copy {
  background:var(--pv8-navy);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(30px,3.5vw,46px);
}
.first-visit-copy .eyebrow { color:#8dd1bb; }
.pv8-library .first-visit-copy h2 {
  color:#fff !important;
  font-size:clamp(29px,3.25vw,42px) !important;
  font-weight:650 !important;
  letter-spacing:-.045em !important;
  line-height:1.04;
  margin:13px 0 16px;
  max-width:680px;
  text-transform:none !important;
}
.first-visit-copy > p { color:#d4e0dc; font-size:14px; line-height:1.58; max-width:660px; }
.first-visit-actions { align-items:center; display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.first-visit-copy .pv8-button.secondary { background:transparent; border-color:#6e8d83; color:#fff; }
.first-visit-copy .pv8-button.secondary:hover { background:rgba(255,255,255,.1); border-color:#aac0b9; }
.first-visit-copy .pv8-button.text { color:#a9d6c7; }
.first-visit-copy .pv8-button.text:hover { background:rgba(255,255,255,.08); color:#fff; }
.first-visit-resume-note { border-left:2px solid #8dd1bb; font-size:12px !important; margin-top:18px; padding-left:11px; }
.first-visit-prep { align-self:center; padding:clamp(28px,4vw,48px); }
.first-visit-prep ul { list-style:none; margin:13px 0 22px; }
.first-visit-prep li { border-bottom:1px solid #dce4e0; display:grid; gap:3px; padding:13px 0; }
.first-visit-prep li b { color:var(--pv8-navy); font-size:13px; }
.first-visit-prep li span { color:var(--text-muted); font-size:12px; }
.first-visit-prep > p { color:var(--text-secondary); font-size:12px; line-height:1.55; }

.first-visit-nudge {
  background:#fff;
  border:1px solid #d5dfdb;
  border-radius:var(--pv8-radius);
  bottom:84px;
  box-shadow:var(--pv8-shadow-md);
  display:grid;
  gap:7px;
  max-width:330px;
  padding:18px 19px;
  position:fixed;
  right:20px;
  z-index:1050;
}
.first-visit-nudge > b { color:var(--pv8-navy); font-size:14px; padding-right:18px; }
.first-visit-nudge > span:not(.eyebrow) { color:var(--text-muted); font-size:12px; }
.first-visit-nudge > div { display:flex; gap:6px; margin-top:5px; }
.first-visit-nudge-close,
.first-visit-tour-close {
  background:transparent !important;
  border:0 !important;
  color:var(--text-muted) !important;
  cursor:pointer;
  font-size:20px !important;
  line-height:1;
  padding:4px !important;
  position:absolute;
  right:10px;
  top:8px;
}
.first-visit-tour {
  background:#fff;
  border:1px solid #b9cdc5;
  border-radius:var(--pv8-radius);
  box-shadow:0 18px 55px rgba(15,42,35,.2);
  padding:21px 22px 18px;
  position:fixed;
  z-index:1400;
}
.first-visit-tour-progress { color:var(--series-1); font:650 9.5px/1.2 var(--pv8-caption); letter-spacing:.035em; }
.pv8-library .first-visit-tour h2 { color:var(--pv8-navy); font-size:20px; letter-spacing:-.025em; margin:8px 24px 7px 0; }
.first-visit-tour > p { color:var(--text-secondary); font-size:13px; line-height:1.55; }
.first-visit-tour-actions { align-items:center; display:flex; justify-content:space-between; margin-top:17px; }
.pv8-tour-target {
  outline:3px solid var(--series-1) !important;
  outline-offset:4px;
  position:relative;
  z-index:1300 !important;
}
.creation-handoff-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.creation-handoff-note { background:#f1f6f3; border-left:3px solid var(--series-1); color:var(--text-secondary); font-size:12px; margin-top:14px; padding:10px 12px; }

.expert-access-bar {
  align-items:center;
  background:#f2f7f4;
  border-bottom:1px solid #d5e1dc;
  color:var(--text-secondary);
  display:flex;
  font-size:12px;
  gap:24px;
  justify-content:space-between;
  min-height:44px;
  padding:8px 22px;
}
.expert-access-bar > div { align-items:baseline; display:flex; gap:10px; }
.expert-access-bar > div b { color:var(--pv8-navy); font-size:13px; white-space:nowrap; }
.expert-access-bar nav { align-items:center; display:flex; flex-wrap:wrap; gap:6px; }
.expert-access-bar nav a {
  border:1px solid #c7d6d0;
  border-radius:6px;
  color:var(--series-1);
  font-weight:650;
  padding:5px 9px;
  text-decoration:none;
  white-space:nowrap;
}
.expert-access-bar nav a:hover { background:#fff; border-color:#9ebdb1; }
.expert-access-bar nav a span { color:var(--text-muted); font-weight:500; }
.expert-first-visit { margin-bottom:24px; }
.reviewer-brief-card {
  background:#fff;
  border-top:4px solid var(--series-1);
  border-radius:var(--pv8-radius);
  box-shadow:var(--pv8-shadow-sm);
  margin:0 auto;
  max-width:820px;
  padding:24px 26px;
}
.expert-first-visit + .reviewer-brief-card { margin-top:24px; }
.reviewer-brief-card:focus { outline:3px solid rgba(17,107,85,.22); outline-offset:3px; }
.pv8-library .reviewer-brief-card h2 {
  color:var(--pv8-navy) !important;
  font-size:24px !important;
  letter-spacing:-.03em !important;
  margin:7px 0 4px !important;
  text-transform:none !important;
}

@media(max-width:800px){
  .first-visit-welcome { grid-template-columns:1fr; }
  .first-visit-copy { padding:34px 26px; }
  .first-visit-prep { padding:28px 26px; }
  .first-visit-nudge { bottom:78px; left:14px; max-width:none; right:14px; }
  .expert-access-bar { align-items:flex-start; flex-direction:column; gap:7px; padding:9px 14px; }
  .expert-access-bar > div { align-items:flex-start; flex-direction:column; gap:2px; }
  .expert-access-bar nav { width:100%; }
  .reviewer-brief-card { padding:20px 18px; }
}

/* Product workspace shell. */
.pv8-library { background:var(--surface-0); }
.pv8-library .layout { grid-template-columns:292px minmax(0,1fr); min-height:calc(100vh - 68px); }
.pv8-library .layout.assets-collapsed { grid-template-columns:52px minmax(0,1fr); }
.pv8-library .layout > div:first-child {
  background:#f8faf9;
  border-right:1px solid var(--border);
}
.pv8-library .navigation-pane {
  background:#f8faf9;
  min-height:calc(100vh - 68px);
}
.pv8-library .navigation-pane .asset-pane-head { min-height:54px; padding:16px 16px 14px 20px; }
.pv8-library .navigation-pane .asset-pane-head h2 {
  color:var(--text-muted);
  font:600 9px/1.2 var(--pv8-mono);
  letter-spacing:.035em;
}
.sidebar-toggle { border-radius:6px !important; height:30px; width:30px; }
.sidebar-toggle:hover { background:var(--pv8-accent-soft); }
.pv8-library .nav-section { border-top:1px solid var(--grid); }
.pv8-library .nav-section-toggle {
  color:var(--text-muted);
  font:600 9px/1.2 var(--pv8-mono);
  letter-spacing:.035em;
  padding:14px 20px 10px;
}
.pv8-library .nav-section-toggle:hover { background:transparent; color:var(--series-1); }
.pv8-library .nav-section-mark { color:var(--text-muted); font-size:13px; }
.pv8-library .asset-links,
.pv8-library .pane-primary-links { border-color:var(--grid); }
.pv8-library .asset-links a,
.pv8-library .pane-utility-links a,
.pv8-library .decision-nav a,
.pv8-library .decision-nav button {
  align-items:center;
  border:0 !important;
  border-radius:10px;
  color:var(--text-secondary);
  display:flex;
  gap:11px;
  margin:2px 10px;
  padding:8px 10px;
}
.pv8-library .asset-links a:hover,
.pv8-library .pane-utility-links a:hover,
.pv8-library .decision-nav a:hover,
.pv8-library .decision-nav button:hover { background:var(--pv8-accent-soft); color:var(--series-4); }
.pv8-library .asset-links a[aria-current="page"],
.pv8-library .pane-utility-links a[aria-current="page"],
.pv8-library .decision-nav a[aria-current="page"],
.pv8-library .decision-nav button.active {
  background:#dfeee8;
  box-shadow:none;
  color:var(--series-4);
}
.pv8-library .decision-nav a span,
.pv8-library .decision-nav button span { font-size:13px; font-weight:500; }
.pv8-library .decision-nav button.active span { font-weight:600; }
.pv8-library .decision-nav a small,
.pv8-library .decision-nav button small { display:none; }
.pv8-library .asset-select-heading { color:var(--text-muted); font:600 9px/1.2 var(--pv8-mono); padding:13px 20px 7px; }
.pv8-library .asset-view-switch { padding-left:20px; padding-right:20px; }
.pv8-library #assetList,
.pv8-library #assetMap { padding-left:12px; padding-right:12px; }
.pv8-library .pane-utility-links { border-top:1px solid var(--grid); margin-top:auto; padding:8px 0 10px; }
.pv8-library .asset {
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px !important;
  margin-bottom:7px;
  padding:10px 11px;
}
.pv8-library .asset:hover { background:#fff; border-color:#abc8bc; box-shadow:var(--pv8-shadow-sm); }
.pv8-library .asset.sel {
  background:var(--pv8-accent-soft);
  border-color:#8fb8a8;
  box-shadow:inset 3px 0 0 var(--series-1);
}

.pv8-portfolio .portfolio-asset-selector { padding:6px 12px 12px; }
.pv8-portfolio .portfolio-asset-choice {
  background:transparent;
  border:1px solid transparent;
  border-radius:8px !important;
  color:var(--text-secondary);
  margin:3px 0;
  padding:10px 11px;
}
.pv8-portfolio .portfolio-asset-choice:hover { background:#fff; border-color:var(--border); color:var(--text-primary); }
.pv8-portfolio .portfolio-asset-choice.selected {
  background:#fff;
  border-color:#b9d2c9;
  box-shadow:var(--pv8-shadow-sm),inset 3px 0 0 var(--series-1);
  color:var(--pv8-navy);
}
.pv8-portfolio .portfolio-asset-choice b { font-size:12px; }
.pv8-portfolio .portfolio-asset-choice span { margin-top:3px; }
.pv8-library .toggle { background:#e9eeeb; border:0; border-radius:6px !important; gap:2px; padding:2px; }
.pv8-library .toggle button { border-radius:4px !important; color:var(--text-muted); padding:5px 9px; }
.pv8-library .toggle button.active { background:#fff; box-shadow:0 1px 4px rgba(15,42,35,.12); color:var(--text-primary) !important; }

/* Portfolio overview. */
.pv8-portfolio .portfolio-main { background:var(--surface-0); }
.pv8-portfolio .hero.portfolio-hero {
  align-items:flex-end;
  background:var(--pv8-navy);
  border:0;
  color:#fff;
  display:flex;
  gap:40px;
  justify-content:space-between;
  padding:42px clamp(26px,4vw,64px) 36px;
}
.pv8-portfolio .portfolio-hero-copy { max-width:820px; }
.pv8-portfolio .hero .eyebrow { color:#8dd1bb; }
.pv8-portfolio .hero h1 {
  color:#fff;
  font-size:clamp(30px,3.25vw,48px);
  font-weight:650;
  letter-spacing:-.045em;
  line-height:1.04;
  margin:11px 0 13px;
  max-width:850px;
}
.pv8-portfolio .hero p { color:#b8cbc4; font-size:14px; line-height:1.6; max-width:760px; }
.pv8-portfolio .portfolio-hero-actions { display:flex; flex:0 0 auto; gap:8px; }
.pv8-portfolio .portfolio-hero .pv8-button.secondary { background:transparent; border-color:#44655b; color:#eaf3f0; }
.pv8-portfolio .portfolio-hero .pv8-button.secondary:hover { background:#1b3d34; border-color:#67857b; }
.pv8-portfolio .portfolio-hero .pv8-button.primary { background:#f2b847; box-shadow:none; color:#1d2a26; }
.pv8-portfolio .portfolio-hero .pv8-button.primary:hover { background:#ffd06f; color:#1d2a26; }
.pv8-portfolio main { margin:0; max-width:none; padding:26px clamp(22px,3.4vw,52px) 72px; }
.portfolio-pulse {
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--pv8-radius-lg);
  box-shadow:var(--pv8-shadow-sm);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-bottom:24px;
  overflow:hidden;
}
.portfolio-pulse article { min-width:0; padding:18px 20px 17px; }
.portfolio-pulse article + article { border-left:1px solid var(--grid); }
.portfolio-pulse span,
.portfolio-pulse small { color:var(--text-muted); display:block; }
.portfolio-pulse span { font:600 9px/1.2 var(--pv8-mono); letter-spacing:.1em; text-transform:uppercase; }
.portfolio-pulse b { color:var(--pv8-navy); display:block; font-size:23px; font-weight:650; letter-spacing:-.035em; margin:7px 0 2px; }
.portfolio-pulse small { font-size:10px; }

.pv8-portfolio #watchFeed,
.pv8-portfolio #opportunityMatrix {
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--pv8-radius);
  box-shadow:var(--pv8-shadow-sm);
  margin-bottom:18px;
  overflow:hidden;
  padding:18px 20px 20px;
}
.pv8-portfolio #watchFeed h2,
.pv8-portfolio #opportunityMatrix h2 { color:var(--pv8-navy); font-size:15px; letter-spacing:-.015em; margin:0 0 5px !important; }
.pv8-portfolio #opportunityMatrix > div:last-child { margin:13px -20px -20px; padding:0 20px 10px; }
.pv8-portfolio #opportunityMatrix table { min-width:900px; }
.pv8-portfolio #opportunityMatrix th { background:#f7f9f8; height:38px; }
.pv8-portfolio #opportunityMatrix td { height:43px; }

.pv8-portfolio #assets { display:grid; gap:12px; }
.pv8-portfolio .asset {
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--pv8-radius);
  box-shadow:var(--pv8-shadow-sm);
  margin:0;
  overflow:hidden;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.pv8-portfolio .asset:hover { border-color:#b6c8c1; box-shadow:var(--pv8-shadow-md); transform:translateY(-1px); }
.pv8-portfolio .asset-head { gap:18px; min-height:96px; padding:18px 20px; }
.pv8-portfolio .asset-head:hover { background:#fbfcfb; }
.pv8-portfolio .asset-head .name { color:var(--pv8-navy); font-size:16px; font-weight:650; letter-spacing:-.015em; }
.pv8-portfolio .asset-head .name small { color:var(--text-muted); margin-top:4px; }
.pv8-portfolio .cell b { color:var(--pv8-navy); font-size:15px; font-weight:650; }
.pv8-portfolio .cell span:not(.chip) { font:500 9px/1.25 var(--pv8-mono); letter-spacing:.08em; }
.pv8-portfolio .bar { background:#e4ebe8; border-radius:4px; height:5px; overflow:hidden; }
.pv8-portfolio .bar > i { background:var(--series-1); border-radius:4px; }
.pv8-portfolio .chip { border-radius:999px; padding:5px 9px; }
.pv8-portfolio .chip.scr { background:#eef2f0; border:0; color:var(--text-secondary); }
.pv8-portfolio .caret { align-items:center; background:var(--pv8-accent-soft); border-radius:50%; display:flex; height:28px; justify-content:center; width:28px; }
.pv8-portfolio .asset-detail { background:#fbfcfb; border-top:1px solid var(--grid); padding:18px 20px 22px; }
.pv8-portfolio table { font-size:12px; }
.pv8-portfolio th { color:var(--text-muted); font:600 9px/1.2 var(--pv8-mono); padding:9px 10px; }
.pv8-portfolio td { border-color:var(--grid); padding:10px; }
.pv8-portfolio .next { background:#f1f6f3; border:0; border-left:3px solid var(--series-1); border-radius:0 7px 7px 0; padding:12px 14px; }
.pv8-portfolio .links a { font-weight:600; text-decoration:none; }
.pv8-portfolio .foot-note { color:var(--text-muted); padding:6px 2px; }

/* Assessment surfaces and dense decision tools. */
.asset-summary {
  background:#fff;
  border-bottom:1px solid var(--border);
  box-shadow:0 2px 9px rgba(15,42,35,.025);
}
.summary-cell { border-color:var(--grid); padding:13px 18px; }
.summary-cell span { color:var(--text-muted); font:600 9px/1.2 var(--pv8-mono); }
.summary-cell b { color:var(--pv8-navy); font-size:15px; }
button.summary-cell:hover { background:#f5faf7; }
.pv8-library .module-workspace { padding:28px clamp(20px,3vw,44px) 72px; }
.pv8-library .workspace-head {
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--pv8-radius-lg);
  box-shadow:var(--pv8-shadow-sm);
  margin-bottom:18px;
  padding:20px 22px;
}
.solution-kicker,
.eyebrow { color:var(--series-1); font:650 10px/1.2 var(--pv8-caption); letter-spacing:.035em; }
.pv8-library #selName { color:var(--pv8-navy); font-size:clamp(22px,2.5vw,32px); font-weight:650; letter-spacing:-.035em; }
.pv8-library .card { background:#fff; border:1px solid var(--border); border-radius:var(--pv8-radius) !important; box-shadow:var(--pv8-shadow-sm); }
.pv8-library .layout > .card { border:0; border-radius:0 !important; box-shadow:none; }
.pv8-library .card h2,
.pv8-library #result > h2,
.pv8-library #h2FoundationResults > h2 { color:var(--pv8-navy); font-size:15px; font-weight:650; letter-spacing:-.01em; }
.pv8-library .libbtn,
.pv8-library form button,
.pv8-library button:not(.summary-cell):not(.nav-section-toggle):not(.sidebar-toggle) {
  border-radius:7px !important;
}
.pv8-library .libbtn {
  background:#fff;
  border-color:var(--border);
  color:var(--series-1);
  font-weight:600;
  min-height:34px;
  padding:7px 11px;
}
.pv8-library .libbtn:hover { background:var(--pv8-accent-soft); border-color:#b8d0c7; }
.pv8-library input,
.pv8-library select,
.pv8-library textarea {
  background:#fff;
  border:1px solid #cbd6d1;
  border-radius:6px !important;
  min-height:36px;
}
.pv8-library input:focus,
.pv8-library select:focus,
.pv8-library textarea:focus {
  border-color:var(--series-1);
  box-shadow:0 0 0 3px rgba(17,107,85,.1);
  outline:0;
}
.pv8-library table th { background:#f7f9f8; color:var(--text-muted); }
.pv8-library .decision-journey { gap:12px; }
.pv8-library .decision-step {
  background:#fff;
  border:1px solid var(--border) !important;
  border-radius:var(--pv8-radius) !important;
  box-shadow:var(--pv8-shadow-sm);
  min-height:220px;
  padding:17px;
}
.pv8-library .decision-step.next { border-color:#8fb8a8 !important; box-shadow:inset 0 3px 0 var(--series-1),var(--pv8-shadow-sm); }
.pv8-library .decision-step.complete { box-shadow:inset 0 3px 0 var(--good),var(--pv8-shadow-sm); }
.pv8-library .decision-step h3 { color:var(--pv8-navy); font-size:16px; font-weight:650; letter-spacing:-.015em; }

/* The assistant remains available without reading as a generic chat widget. */
#pv8ChatFab {
  background:var(--pv8-navy) !important;
  border:1px solid #284c42 !important;
  border-radius:9px !important;
  bottom:18px !important;
  box-shadow:0 9px 24px rgba(15,42,35,.2) !important;
  color:#fff !important;
  font-size:0 !important;
  height:42px !important;
  padding:0 14px !important;
  right:18px !important;
  width:auto !important;
}
#pv8ChatFab::before { content:"Ask PV8"; font:650 11px/1 var(--pv8-sans); letter-spacing:.01em; }
#pv8ChatFab:hover { background:var(--series-1) !important; }
#pv8ChatPanel { border-color:var(--border) !important; border-radius:var(--pv8-radius) !important; box-shadow:var(--pv8-shadow-md) !important; }

/* Asset creation and profile: quieter forms, stronger hierarchy. */
.pv8-form-page,
.pv8-profile { background:var(--surface-0); margin:0; max-width:none; padding:0; }
.pv8-form-page > form { margin:0 auto; max-width:900px; padding:42px 24px 80px; }
.pv8-form-page .card,
.pv8-profile .card {
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--pv8-radius) !important;
  box-shadow:var(--pv8-shadow-sm);
  margin-bottom:14px;
  padding:20px;
}
.pv8-form-page .card h2,
.pv8-profile .card h2 { color:var(--pv8-navy); font-size:15px; font-weight:650; letter-spacing:-.01em; text-transform:none; }
.pv8-form-page label,
.pv8-profile label { color:var(--text-secondary); font-size:11px; font-weight:600; }
.pv8-form-page input,
.pv8-form-page select,
.pv8-profile input,
.pv8-profile select,
.pv8-profile textarea {
  background:#fff;
  border:1px solid #cbd6d1;
  border-radius:6px !important;
  min-height:38px;
  padding:8px 10px;
}
.pv8-form-page input:focus,
.pv8-form-page select:focus,
.pv8-profile input:focus,
.pv8-profile select:focus,
.pv8-profile textarea:focus { border-color:var(--series-1); box-shadow:0 0 0 3px rgba(17,107,85,.1); outline:0; }
.pv8-form-page button,
.pv8-profile button {
  background:var(--series-1);
  border-radius:7px !important;
  color:#fff !important;
  font-weight:650;
}
.pv8-form-page button:hover,
.pv8-profile button:hover { background:var(--series-4); color:#fff !important; }
.pv8-form-page #drop,
.pv8-profile #drop { background:#f7faf8; border:1.5px dashed #9db7ad; border-radius:10px !important; }
.pv8-form-page #drop:hover,
.pv8-profile #drop:hover { background:var(--pv8-accent-soft); border-color:var(--series-1); }
.pv8-profile > section,
.pv8-profile > .profile-nav { margin-left:auto; margin-right:auto; max-width:1120px; }
.pv8-profile > section { padding-left:24px; padding-right:24px; }
.pv8-profile .profile-nav {
  background:rgba(243,246,244,.94);
  backdrop-filter:blur(12px);
  border:0;
  gap:6px;
  padding:12px 24px;
  top:0;
}
.pv8-profile .profile-nav a {
  background:transparent;
  border:0;
  border-radius:6px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:600;
  padding:8px 11px;
}
.pv8-profile .profile-nav a:hover { background:#fff; color:var(--series-1); }
.profile-title-row { margin-bottom:18px; padding-top:16px; }
.profile-title-row h1 { color:var(--pv8-navy); font-size:32px; font-weight:650; letter-spacing:-.04em; }
.profile-metrics {
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--pv8-radius);
  box-shadow:var(--pv8-shadow-sm);
  overflow:hidden;
}
.profile-metric { border-color:var(--grid); padding:15px 16px; }
.profile-metric span { color:var(--text-muted); font:600 9px/1.2 var(--pv8-mono); }
.profile-metric b { color:var(--pv8-navy); font-size:19px; font-weight:600; }
.pv8-profile .readiness-banner { background:#fff; border:1px solid var(--border); border-left:4px solid var(--warning); border-radius:var(--pv8-radius); box-shadow:var(--pv8-shadow-sm); }
.pv8-profile .danger-action { background:#fff; border:1px solid #ddb8b8; color:var(--serious) !important; }
.pv8-profile .danger-action:hover { background:#fff3f3; color:var(--serious) !important; }

@media (max-width:1080px) {
  .pv8-library .layout { grid-template-columns:250px minmax(0,1fr); }
  .pv8-portfolio .hero.portfolio-hero { align-items:flex-start; flex-direction:column; gap:22px; }
  .pv8-portfolio .asset-head { grid-template-columns:minmax(180px,1.4fr) repeat(2,minmax(100px,1fr)) 28px; }
  .pv8-portfolio .asset-head .cell:nth-of-type(4),
  .pv8-portfolio .asset-head .cell:nth-of-type(5) { display:none; }
}

@media (max-width:760px) {
  .pv8-library > header,
  .pv8-profile > header,
  .pv8-form-page > header,
  .pv8-faq > header,
  .pv8-terms > header { padding:11px 16px; }
  .pv8-library .layout,
  .pv8-library .layout.assets-collapsed { display:block; }
  .pv8-library .layout > div:first-child { border-bottom:1px solid var(--border); border-right:0; }
  .pv8-library .navigation-pane { min-height:0; }
  .pv8-library .layout.assets-collapsed #assetPane { display:none; }
  .pv8-portfolio .hero.portfolio-hero { padding:32px 22px 30px; }
  .pv8-portfolio .portfolio-hero-actions { width:100%; }
  .pv8-portfolio .portfolio-hero-actions .pv8-button { flex:1; }
  .portfolio-pulse { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portfolio-pulse article:nth-child(3) { border-left:0; }
  .portfolio-pulse article:nth-child(n+3) { border-top:1px solid var(--grid); }
  .pv8-portfolio .asset-head { grid-template-columns:minmax(0,1.5fr) minmax(92px,1fr) 28px; }
  .pv8-portfolio .asset-head .cell:nth-of-type(n+2) { display:none; }
  .pv8-profile > section { padding-left:16px; padding-right:16px; }
}

@media (max-width:480px) {
  .pv8-brand :is(h1,.pv8-wordmark) { font-size:20px; }
  .pv8-nav { flex-wrap:wrap; }
  .pv8-portfolio main { padding-left:14px; padding-right:14px; }
  .portfolio-pulse { grid-template-columns:1fr; }
  .portfolio-pulse article + article { border-left:0; border-top:1px solid var(--grid); }
  .pv8-portfolio .portfolio-hero-actions { flex-direction:column; }
  .pv8-form-page > form { padding-left:14px; padding-right:14px; }
}

/* -------------------------------------------------------------------------
   PV8 quiet hierarchy refinement — 2026-08-22

   Selection carries the contrast. Everything else recedes into spacing,
   typography and soft surface changes rather than permanent rules.
   ------------------------------------------------------------------------- */
:root {
  --border:#e3e9e6;
  --grid:#edf1ef;
  --pv8-divider:#e3e9e6;
  --pv8-sans:"Instrument Sans","Avenir Next",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --pv8-module-blue:#2b607f;
  --pv8-module-blue-soft:#c6dbe6;
  --pv8-module-blue-selection:#cfe1ea;
  --pv8-selected-ink:#102a24;
  --pv8-shadow-sm:0 5px 18px rgba(15,42,35,.045);
  --pv8-shadow-md:0 12px 34px rgba(15,42,35,.075);
}

body { font-family:var(--pv8-sans); }
.pv8-brand :is(h1,.pv8-wordmark) { font-weight:700; }
.pv8-library > header,
.pv8-profile > header,
.pv8-form-page > header,
.pv8-faq > header,
.pv8-terms > header { border-bottom:0; box-shadow:0 1px 10px rgba(15,42,35,.045); }

/* Navigation: unselected destinations are plain; the current context is clear. */
.pv8-library .layout > div:first-child { border-right:0; box-shadow:8px 0 24px rgba(15,42,35,.035); z-index:2; }
.pv8-library .nav-section,
.pv8-library .asset-links,
.pv8-library .pane-primary-links,
.pv8-library .pane-utility-links { border-color:transparent; }
.pv8-library .nav-section + .nav-section { margin-top:5px; }
.pv8-library .asset-links a,
.pv8-library .pane-utility-links a,
.pv8-library .decision-nav a,
.pv8-library .decision-nav button { color:#65736f; }
.pv8-library .asset-links a:hover,
.pv8-library .pane-utility-links a:hover,
.pv8-library .decision-nav a:hover,
.pv8-library .decision-nav button:hover { background:#eef4f1; color:var(--pv8-navy); }
.pv8-library .asset-links a[aria-current="page"],
.pv8-library .pane-utility-links a[aria-current="page"],
.pv8-library .decision-nav a[aria-current="page"],
.pv8-library .decision-nav button.active {
  background:var(--pv8-module-blue-selection);
  box-shadow:none;
  color:var(--pv8-selected-ink);
}
.pv8-library .asset-links a[aria-current="page"] small,
.pv8-library .pane-utility-links a[aria-current="page"] small,
.pv8-library .decision-nav a[aria-current="page"] small,
.pv8-library .decision-nav button.active small { color:#365d6c; }

.pv8-library .asset,
.pv8-portfolio .portfolio-asset-choice {
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}
.pv8-library .asset:hover,
.pv8-portfolio .portfolio-asset-choice:hover { background:#eef4f1; border-color:transparent; box-shadow:none; }
.pv8-library .asset.sel,
.pv8-portfolio .portfolio-asset-choice.selected {
  background:var(--pv8-module-blue-selection);
  border-color:var(--pv8-module-blue);
  box-shadow:0 7px 18px rgba(43,96,127,.12),inset 3px 0 0 var(--pv8-module-blue);
  color:var(--pv8-selected-ink);
}
.pv8-library .asset.sel b,
.pv8-library .asset.sel span,
.pv8-portfolio .portfolio-asset-choice.selected b,
.pv8-portfolio .portfolio-asset-choice.selected span { color:var(--pv8-selected-ink); }
.pv8-library .asset.sel span,
.pv8-portfolio .portfolio-asset-choice.selected span { opacity:.68; }

/* Selected controls use dark ink; the blue surface supplies the state cue. */
.pv8-library .mdcTabBtn.active,
.pv8-library .toggle button.active,
.pv8-library .cmpv.active,
.pv8-library button.libbtn.windtab.active,
.pv8-library button.libbtn.agritab.active,
.pv8-library button.libbtn.h2tab.active,
.pv8-library .land-value-view button.active,
.pv8-library .solution-tabs button.active,
.pv8-library .mdc-view-toggle[aria-pressed="true"],
.pv8-library .mdc-share-preset[aria-pressed="true"] {
  background:var(--pv8-module-blue-selection) !important;
  border-color:var(--pv8-module-blue) !important;
  box-shadow:inset 0 -3px 0 var(--pv8-module-blue);
  color:var(--pv8-selected-ink) !important;
}

/* Action hierarchy: modelling is primary; reopening inputs is a special edit. */
.pv8-library button[onclick="run(true)"],
.pv8-library button[onclick*="moduleJourneySubmit("],
.pv8-library #landRunSale {
  background:#f0c85b !important;
  border-color:#d2a83b !important;
  box-shadow:0 5px 14px rgba(184,137,26,.2);
  color:#102a24 !important;
  font-weight:700;
}
.pv8-library button[onclick="run(true)"]:hover,
.pv8-library button[onclick*="moduleJourneySubmit("]:hover,
.pv8-library #landRunSale:hover {
  background:#dfb23f !important;
  border-color:#bd8f21 !important;
  box-shadow:0 7px 18px rgba(184,137,26,.27);
  color:#102a24 !important;
  transform:translateY(-1px);
}
.pv8-library button[onclick="run(true)"]:disabled,
.pv8-library button[onclick*="moduleJourneySubmit("]:disabled,
.pv8-library #landRunSale:disabled {
  background:#eee5cc !important;
  border-color:#ddd2b6 !important;
  box-shadow:none;
  color:#7a7464 !important;
  transform:none;
}

.pv8-library .module-inputs-toggle,
.pv8-library .generic-inputs-toggle,
.pv8-library .recycling-inputs-toggle,
.pv8-library .direct-wire-inputs-toggle,
.pv8-library .water-inputs-toggle {
  background:#e2f1ec !important;
  border-color:#9bc8ba !important;
  box-shadow:0 2px 8px rgba(17,107,85,.09);
  color:#174b3e !important;
  font-weight:650;
}
.pv8-library .module-inputs-toggle:hover,
.pv8-library .generic-inputs-toggle:hover,
.pv8-library .recycling-inputs-toggle:hover,
.pv8-library .direct-wire-inputs-toggle:hover,
.pv8-library .water-inputs-toggle:hover {
  background:#cfe7df !important;
  border-color:#72aa98 !important;
  color:#103d32 !important;
}

/* Summary strips and KPI groups use whitespace instead of boxed grids. */
.asset-summary { border:0; box-shadow:0 5px 18px rgba(15,42,35,.035); gap:0; padding:5px 8px; }
.summary-cell { border:0 !important; border-radius:7px; padding:10px 18px; }
button.summary-cell:hover { background:var(--pv8-accent-soft); }
/* header speaks the left pane's language, one size up: sans values over the
   small-caps mono labels, with explicit dividers between cell groups */
.summary-cell + .summary-cell { border-left:1px solid var(--grid) !important; border-radius:0; }
.summary-cell:last-child { border-radius:0 7px 7px 0; }
.summary-cell b { font-family:var(--pv8-sans); font-size:17px; font-weight:650; }
.summary-cell-links { gap:14px; margin-top:6px; }
.summary-cell-links a { font-size:12.5px; font-weight:600; }
#recentMenu { font-family:var(--pv8-sans); }
#recentMenu a b { font-family:var(--pv8-sans); font-size:12.5px; font-weight:600; }
#recentMenu a span { color:var(--text-muted); font:500 11px/1.4 var(--pv8-sans); letter-spacing:0; text-transform:none; }
.portfolio-pulse {
  background:transparent;
  border:0;
  box-shadow:none;
  gap:10px;
  overflow:visible;
}
.portfolio-pulse article {
  background:#fff;
  border:0 !important;
  border-radius:var(--pv8-radius);
  box-shadow:var(--pv8-shadow-sm);
}

/* Cards remain legible without a perimeter on every object. */
.pv8-portfolio #watchFeed,
.pv8-portfolio #opportunityMatrix,
.pv8-portfolio .asset,
.pv8-library .workspace-head,
.pv8-library .card,
.pv8-form-page .card,
.pv8-profile .card,
.profile-metrics,
.pv8-profile .readiness-banner {
  border-color:transparent;
  box-shadow:var(--pv8-shadow-sm);
}
.pv8-portfolio .asset:hover { border-color:transparent; box-shadow:var(--pv8-shadow-md); }
.pv8-portfolio .asset.open { box-shadow:0 0 0 2px rgba(17,107,85,.3),var(--pv8-shadow-md); }
.pv8-portfolio .asset-detail { border-top:0; }
.pv8-portfolio #opportunityMatrix th { background:#f8faf9; border:0; }
.pv8-portfolio #opportunityMatrix td { border:0; }
.pv8-portfolio #opportunityMatrix tr + tr td { border-top:1px solid var(--grid); }
.pv8-portfolio .asset-head { border:0; }
.pv8-portfolio .next { background:#f3f7f5; }

.pv8-library .decision-journey { gap:14px; }
.pv8-library .decision-step {
  border-color:transparent !important;
  box-shadow:var(--pv8-shadow-sm);
}
.pv8-library .decision-step.next {
  background:#eaf4f0;
  border-color:transparent !important;
  box-shadow:inset 4px 0 0 var(--series-1),var(--pv8-shadow-sm);
}
.pv8-library .decision-step.complete { border-color:transparent !important; }
.pv8-library table th { border:0; }
.pv8-library table td { border-color:var(--grid); }

/* Profile metrics read as six facts, not a spreadsheet. */
.profile-metrics {
  background:transparent;
  border:0;
  box-shadow:none;
  gap:10px;
  overflow:visible;
}
.profile-metric {
  background:#fff;
  border:0 !important;
  border-radius:8px;
  box-shadow:var(--pv8-shadow-sm);
}
.pv8-profile .profile-nav { border:0; }
.pv8-profile .profile-nav a { color:#64736e; }
.pv8-profile .profile-nav a:hover { color:var(--pv8-navy); }
.pv8-profile .profile-nav a:focus,
.pv8-profile .profile-nav a:active { background:var(--pv8-navy); color:#fff; }
.pv8-profile .minimum-grid,
.pv8-profile .evidence-level { border-color:var(--grid); }
.pv8-profile .minimum-item,
.pv8-profile .evidence-level article,
.pv8-profile .evidence-domain { border-color:var(--grid); }

/* Controls keep a border because it communicates affordance; containers do not. */
.pv8-library input,
.pv8-library select,
.pv8-library textarea,
.pv8-form-page input,
.pv8-form-page select,
.pv8-profile input,
.pv8-profile select,
.pv8-profile textarea { border-color:#d4ddd9; }

/* Owner-first managed expert matching. The modal reads as a controlled
   engagement workflow, never a marketplace catalogue. */
.expert-match-modal {
  align-items:flex-start;
  background:rgba(10,27,22,.68);
  display:flex;
  inset:0;
  justify-content:center;
  overflow:auto;
  padding:28px;
  position:fixed;
  z-index:520;
}
.expert-match-shell {
  background:#f7f8f7;
  border-radius:14px;
  box-shadow:0 28px 80px rgba(6,24,18,.28);
  max-width:980px;
  overflow:hidden;
  width:100%;
}
.expert-match-title {
  align-items:flex-start;
  background:var(--pv8-navy);
  color:#fff;
  display:flex;
  gap:24px;
  justify-content:space-between;
  margin:0;
  padding:24px 28px 22px;
}
.expert-match-title h2 { color:#fff; font-size:25px; margin:4px 0 6px; text-transform:none; }
.expert-match-title p { color:#cbd9d4; font-size:13px; margin:0; max-width:720px; }
.expert-match-title .eyebrow { color:#9fc8bb; }
.expert-match-title .modal-close {
  background:transparent; border:0; color:#fff; cursor:pointer; font-size:28px; line-height:1;
}
.owner-first-strip {
  align-items:center; background:#e2f1ec; color:#174b3e; display:flex; gap:16px;
  padding:11px 28px;
}
.owner-first-strip b { white-space:nowrap; }
.owner-first-strip span { font-size:12.5px; }
.expert-match-create,.expert-match-existing { padding:24px 28px; }
.expert-match-existing { border-top:1px solid #dfe6e2; }
.expert-match-create-head,.expert-match-existing-head,.expert-match-head {
  align-items:flex-start; display:flex; gap:18px; justify-content:space-between;
}
.expert-match-create-head h3,.expert-match-existing-head h3,.expert-match-head h3 {
  font-size:18px; margin:2px 0 0;
}
.expert-match-create-head>span,.expert-match-head>span { color:var(--text-muted); font-size:12px; }
.expert-stepper { display:grid; gap:1px; grid-template-columns:repeat(3,1fr); margin:18px 0; }
.expert-stepper button {
  align-items:center; background:#e8ecea; border:0; color:#65736e; cursor:pointer;
  display:flex; font:600 12px var(--pv8-sans); gap:8px; justify-content:center; padding:10px;
}
.expert-stepper button:first-child { border-radius:8px 0 0 8px; }
.expert-stepper button:last-child { border-radius:0 8px 8px 0; }
.expert-stepper button b {
  align-items:center; background:#fff; border-radius:50%; display:inline-flex; height:21px;
  justify-content:center; width:21px;
}
.expert-stepper button.active { background:var(--pv8-navy); color:#fff; }
.expert-stepper button.active b { color:var(--pv8-navy); }
.expert-match-step { background:#fff; border-radius:10px; box-shadow:var(--pv8-shadow-sm); padding:20px; }
.expert-match-step[hidden] { display:none; }
.expert-match-step>label,.expert-form-grid label {
  color:var(--pv8-navy); display:grid; font-size:12.5px; font-weight:650; gap:5px; margin-bottom:14px;
}
.expert-match-step label>span { color:var(--text-muted); font-weight:500; }
.expert-match-step label small { color:var(--text-muted); font-weight:500; }
.expert-match-step input,.expert-match-step select,.expert-match-step textarea {
  background:#fbfcfb; border:1px solid #ced9d4; border-radius:7px; color:var(--text-primary);
  font:500 13px/1.45 var(--pv8-sans); margin:0; padding:9px 10px; width:100%;
}
.expert-reference-picker {
  border:0; display:grid; gap:9px; grid-template-columns:repeat(2,minmax(0,1fr));
  margin:0 0 14px; padding:0;
}
.expert-reference-picker legend {
  color:var(--pv8-navy); font-size:12.5px; font-weight:700; margin-bottom:7px;
}
.expert-reference-picker label {
  align-items:flex-start; background:#f6f8f7; border:1px solid #d8e1dd;
  border-radius:9px; cursor:pointer; display:flex; gap:9px; padding:12px;
}
.expert-reference-picker label:has(input:checked) {
  background:#e7f2ee; border-color:#72a493; box-shadow:inset 0 0 0 1px #72a493;
}
.expert-reference-picker label:has(input:disabled) { cursor:not-allowed; opacity:.65; }
.expert-reference-picker input { margin:3px 0 0; width:auto; }
.expert-reference-picker span { display:grid; gap:2px; }
.expert-reference-picker span b { color:var(--pv8-navy); }
.expert-reference-picker span small { line-height:1.35; }
.expert-reference-fields { display:grid; gap:0 14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.expert-reference-fields>label {
  color:var(--pv8-navy); display:grid; font-size:12.5px; font-weight:650;
  gap:5px; margin-bottom:14px;
}
.expert-reference-fields>label:first-child { grid-column:1/-1; }
.expert-reference-fields>label[hidden] { display:none; }
.expert-reference-summary {
  background:#f0f5f3; border-left:3px solid #477f6e; border-radius:0 7px 7px 0;
  display:grid; gap:2px; margin:0 0 14px; padding:10px 12px;
}
.expert-reference-summary b { color:var(--pv8-navy); font-size:13.5px; }
.expert-reference-summary small { color:var(--text-muted); }
.expert-form-grid { display:grid; gap:0 14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.expert-check { align-items:flex-start; display:flex !important; gap:9px !important; }
.expert-check input { margin-top:3px; width:auto; }
.expert-check span { display:grid; gap:2px; }
.expert-check span b { color:var(--pv8-navy); }
.expert-step-actions { align-items:center; display:flex; gap:10px; justify-content:flex-end; margin-top:10px; }
.expert-step-actions>span { color:var(--serious); font-size:12px; margin-right:auto; }
.expert-privacy-grid { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.expert-privacy-grid>div { background:#f6f8f7; border-radius:8px; padding:14px; }
.expert-privacy-grid p { font-size:13px; margin:5px 0 10px; }
.expert-privacy-grid dl { display:grid; gap:6px; }
.expert-privacy-grid dl div { display:grid; gap:2px; }
.expert-privacy-grid dt { color:var(--text-muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.expert-privacy-grid dd { font-size:12px; margin:0; }
.expert-document-picker { border:0; border-top:1px solid var(--grid); margin:18px 0 0; padding:16px 0 0; }
.expert-document-picker legend { color:var(--pv8-navy); font-size:12.5px; font-weight:700; padding-right:8px; }
.expert-document-picker>input { margin:5px 0 8px; max-width:420px; }
.expert-document-options { max-height:210px; overflow:auto; padding-right:6px; }
.expert-document-option { align-items:flex-start; display:flex !important; gap:8px !important; margin:8px 0 !important; }
.expert-document-option input { margin-top:3px; width:auto; }
.expert-document-option span { display:grid; gap:1px; }
.expert-document-option span b { color:var(--text-primary); }
.expert-owner-confirm { background:#fff8df; border-left:3px solid #d2a83b; font-size:12.5px; padding:9px 11px; }
.expert-match-card {
  background:#fff; border-left:4px solid #8aa69d; border-radius:10px;
  box-shadow:var(--pv8-shadow-sm); margin-top:14px; padding:18px;
}
.expert-match-card[data-status="ACCEPTED"],.expert-match-card[data-status="IN_REVIEW"],
.expert-match-card[data-status="REVIEW_SUBMITTED"] { border-left-color:var(--series-3); }
.expert-match-card>p { margin:8px 0; }
.expert-match-scope { display:grid; gap:2px; margin:10px 0; }
.expert-match-scope span { color:var(--text-muted); font-size:12px; }
.owner-control-note { background:#f1f5f3; border-radius:7px; display:grid; font-size:12.5px; gap:2px; margin:10px 0; padding:10px 12px; }
.owner-control-note.ready { background:#e4f2ed; color:#174b3e; }
.expert-shortlist-intro { display:grid; gap:2px; margin:18px 0 8px; }
.expert-shortlist-intro span { color:var(--text-muted); font-size:12px; }
.expert-candidate-card { border:1px solid #dce4e0; border-radius:9px; margin:9px 0; padding:14px; }
.expert-candidate-card.selected { border-color:#79aa9b; box-shadow:inset 3px 0 0 #79aa9b; }
.expert-candidate-card header { align-items:flex-start; display:flex; gap:12px; justify-content:space-between; margin:0 0 10px; }
.expert-candidate-card header>div { display:grid; gap:1px; }
.expert-candidate-card header span { color:var(--text-muted); font-size:11px; }
.expert-candidate-card .match-status { background:#eef3f1; border-radius:10px; color:#4e655d; padding:3px 8px; text-transform:lowercase; }
.expert-fit-grid { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.expert-fit-grid>div { background:#f7f9f8; border-radius:7px; padding:9px 11px; }
.expert-fit-grid>div>span { color:var(--text-muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.expert-fit-grid ul { margin:5px 0 0 17px; }
.expert-fit-grid p { font-size:12px; margin:5px 0 0; }
.expert-candidate-facts { display:grid; gap:5px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:10px 0; }
.expert-candidate-facts div { display:grid; gap:1px; }
.expert-candidate-facts dt { color:var(--text-muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.expert-candidate-facts dd { font-size:12px; margin:0; }
.expert-response-note { background:#fff8df; border-radius:6px; font-size:12px; padding:8px 10px; }
.expert-grant-row { align-items:flex-end; display:flex; gap:10px; margin-top:10px; }
.expert-grant-row label { display:grid; font-size:11px; gap:3px; }
.expert-grant-row select { border:1px solid #ced9d4; border-radius:6px; padding:7px 8px; }
.expert-redacted-brief { border-top:1px solid var(--grid); margin-top:14px; padding-top:10px; }
.expert-redacted-brief summary { color:var(--series-1); cursor:pointer; font-size:12px; font-weight:650; }
.expert-redacted-brief pre { background:#f5f7f6; border-radius:7px; font-size:11px; overflow:auto; padding:10px; white-space:pre-wrap; }
.expert-access-created { background:#e4f2ed; border-left:4px solid var(--series-3); margin:18px 28px 0; padding:13px 15px; }
.expert-access-created>div { align-items:center; display:flex; flex-wrap:wrap; gap:7px; }
.expert-access-created code { background:#fff; border-radius:5px; padding:6px 8px; }
.managed-review-assignment { background:#f3f7f5; border-left:3px solid var(--series-3); margin:12px 0; padding:12px 14px; }
.managed-review-assignment h3 { font-size:16px; margin:2px 0 0; }
.managed-review-assignment>p { margin:7px 0; }
.managed-review-assignment dl { display:grid; gap:6px; grid-template-columns:repeat(3,minmax(0,1fr)); margin:9px 0; }
.managed-review-assignment dl div { display:grid; gap:2px; }
.managed-review-assignment dt { color:var(--text-muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.managed-review-assignment dd { font-size:12px; margin:0; }

/* Connection Optionality — evidence first, owner controlled, never ranked. */
.connection-optionality-modal {
  align-items:center; background:rgba(11,29,25,.68); display:flex; inset:0;
  justify-content:center; padding:22px; position:fixed; z-index:515;
}
.connection-shell {
  background:#f5f7f6; border-radius:14px; box-shadow:0 24px 70px rgba(5,25,20,.3);
  max-height:92vh; max-width:1120px; overflow:auto; width:100%;
}
.connection-title {
  align-items:flex-start; background:var(--pv8-navy); color:#fff; display:flex;
  gap:28px; justify-content:space-between; padding:25px 30px 23px;
}
.connection-title h2 { color:#fff; font-size:25px; margin:4px 0 6px; text-transform:none; }
.connection-title p { color:#cad8d3; font-size:13px; margin:0; max-width:790px; }
.connection-title .eyebrow { color:#9fc8bb; }
.connection-title .modal-close {
  background:transparent; border:0; color:#fff; cursor:pointer; font-size:30px; line-height:1;
}
.connection-honesty-strip {
  align-items:center; background:#dff0ea; color:#174b3e; display:flex; gap:18px;
  padding:11px 30px;
}
.connection-honesty-strip b { white-space:nowrap; }
.connection-honesty-strip span { font-size:12.5px; }
.connection-shell main { display:grid; gap:18px; padding:24px 30px 30px; }
.connection-shell main>section {
  background:#fff; border:1px solid #dfe6e2; border-radius:11px;
  box-shadow:var(--pv8-shadow-sm); padding:21px;
}
.connection-section-head {
  align-items:flex-start; display:flex; gap:16px; justify-content:space-between; margin-bottom:14px;
}
.connection-section-head h3,.connection-evidence-section h3,.connection-share-panel h3 {
  color:var(--pv8-navy); font-size:18px; margin:2px 0 0;
}
.connection-section-head>span { color:var(--text-muted); font-size:11.5px; }
.connection-section-head>div:last-child { align-items:center; display:flex; flex-wrap:wrap; gap:7px; }
.connection-evidence {
  background:#edf1ef; border-radius:12px; color:#53655f; display:inline-flex;
  font-size:9.5px; font-weight:750; letter-spacing:.02em; padding:4px 8px; text-transform:uppercase;
}
.connection-evidence.recorded { background:#e3f0eb; color:#24614f; }
.connection-evidence.confirmed { background:#d6eee4; color:#155541; }
.connection-evidence.unknown { background:#f2eee6; color:#806c46; }
.connection-listed {
  background:#dff0ea; border-radius:12px; color:#165a45; font-size:10px;
  font-weight:750; padding:4px 8px; text-transform:uppercase;
}
.connection-capacity-grid { display:grid; gap:11px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.connection-capacity-card {
  border:1px solid #d7e0dc; border-top:3px solid #477f6e; border-radius:8px;
  display:grid; gap:7px; min-height:130px; padding:13px;
}
.connection-capacity-card.is-unknown { border-top-color:#b6a679; }
.connection-capacity-card>span { color:var(--text-muted); font-size:10px; font-weight:750; text-transform:uppercase; }
.connection-capacity-card>b { color:var(--pv8-navy); font-size:18px; }
.connection-capacity-card .connection-unknown { color:#806c46; font-size:15px; }
.connection-capacity-card small { color:var(--text-muted); font-size:10.5px; line-height:1.35; }
.connection-passport-facts {
  display:grid; gap:9px; grid-template-columns:repeat(6,minmax(0,1fr)); margin:13px 0 0;
}
.connection-passport-facts div { border-left:2px solid #d7e0dc; display:grid; gap:2px; padding-left:9px; }
.connection-passport-facts dt { color:var(--text-muted); font-size:9px; font-weight:700; text-transform:uppercase; }
.connection-passport-facts dd { color:var(--pv8-navy); font-size:11px; margin:0; }
.connection-passport-facts dd b { font-size:11px; }
.connection-boundary {
  border-left:3px solid #8baaa0; color:var(--text-muted); font-size:12px;
  margin:13px 0 0; padding:7px 10px;
}
.connection-passport-editor { border-top:1px solid var(--grid); margin-top:14px; padding-top:13px; }
.connection-passport-editor summary { color:var(--series-1); cursor:pointer; font-size:12.5px; font-weight:700; }
.connection-passport-row {
  align-items:end; display:grid; gap:10px; grid-template-columns:1fr 170px 1.4fr;
  margin-top:12px;
}
.connection-passport-row label,.connection-meta-grid label,.connection-time-row label {
  color:var(--pv8-navy); display:grid; font-size:11px; font-weight:650; gap:4px;
}
.connection-passport-row input,.connection-passport-row select,.connection-meta-grid input,
.connection-time-row input {
  background:#fbfcfb; border:1px solid #ced9d4; border-radius:6px; color:var(--text-primary);
  font:500 12px var(--pv8-sans); margin:0; padding:8px; width:100%;
}
.connection-time-row {
  align-items:end; background:#f4f7f5; border-radius:7px; display:grid; gap:10px;
  grid-template-columns:1fr repeat(3,100px); margin:7px 0 13px; padding:10px 12px;
}
.connection-time-row>b { color:var(--text-muted); font-size:11px; }
.connection-meta-grid { display:grid; gap:12px; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:15px; }
.connection-meta-grid .connection-check { align-content:center; display:flex; gap:8px; }
.connection-meta-grid .connection-check input { margin:1px 0 0; width:auto; }
.connection-editor-actions { align-items:center; display:flex; gap:10px; justify-content:flex-end; margin-top:14px; }
.connection-editor-actions span,#exchMsg { color:var(--serious); font-size:12px; }
.connection-metric-grid { display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.connection-metric-grid article { background:#f4f7f5; border-radius:8px; display:grid; gap:4px; padding:13px; }
.connection-metric-grid span { color:var(--text-muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.connection-metric-grid b { color:var(--pv8-navy); font-size:17px; }
.connection-candidate-grid { display:grid; gap:11px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.connection-candidate-card { border:1px solid #dce4e0; border-radius:9px; padding:13px; }
.connection-candidate-card header { align-items:flex-start; display:flex; gap:10px; justify-content:space-between; }
.connection-candidate-card header>div { display:grid; gap:2px; }
.connection-candidate-card header small { color:var(--text-muted); font-size:10.5px; }
.connection-candidate-card header label { align-items:center; display:flex; font-size:9.5px; gap:4px; }
.connection-candidate-card dl { display:grid; gap:7px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:12px 0 8px; }
.connection-candidate-card dl div { background:#f5f7f6; border-radius:5px; padding:7px; }
.connection-candidate-card dt { color:var(--text-muted); font-size:9px; font-weight:700; text-transform:uppercase; }
.connection-candidate-card dd { font-size:10.5px; margin:2px 0 0; }
.connection-candidate-card p { color:var(--text-muted); font-size:11px; line-height:1.4; margin:8px 0 0; }
.connection-evidence-section { display:grid; gap:18px; grid-template-columns:1.7fr 1fr; }
.connection-evidence-section>div>p,.connection-evidence-section aside>p { color:var(--text-muted); font-size:11.5px; }
.connection-evidence-section aside { background:#f3f7f5; border-radius:8px; padding:15px; }
.connection-evidence-section aside ul { list-style:none; margin:12px 0; padding:0; }
.connection-evidence-section aside li { font-size:11.5px; margin:5px 0; }
.connection-evidence-section aside li.complete { color:#24725a; }
.connection-evidence-section aside li.missing { color:#8b6732; }
.connection-source-list { display:grid; gap:8px; }
.connection-public-signal { background:#f4f7f5; border-radius:7px; display:grid; gap:2px; margin:10px 0; padding:10px 12px; }
.connection-public-signal b { color:var(--pv8-navy); font-size:11px; text-transform:capitalize; }
.connection-public-signal span { font-size:11.5px; }
.connection-public-signal small { color:var(--text-muted); font-size:10px; }
.grid-context-section { border-top:3px solid #2f715d !important; }
.grid-context-intro { color:var(--text-secondary); font-size:12.5px; margin:-5px 0 15px; max-width:850px; }
.grid-context-refresh-state { align-items:center; display:flex; gap:9px; }
.grid-context-refresh-state>span { color:var(--text-muted); font-size:10.5px; }
.grid-context-grid { display:grid; gap:10px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.grid-context-card { background:#f8faf9; border:1px solid #dce5e1; border-top:3px solid #6b8d82; border-radius:8px; display:grid; gap:8px; min-height:205px; padding:13px; }
.grid-context-card.curtailment { border-top-color:#986044; }
.grid-context-card.capacity { border-top-color:#36735f; }
.grid-context-card.load { border-top-color:#4e6f8b; }
.grid-context-card.stress { border-top-color:#8a7240; }
.grid-context-card header { align-items:center; display:flex; gap:7px; justify-content:space-between; }
.grid-context-card header>span { color:var(--text-muted); font-size:9.5px; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.grid-context-card header>small { color:var(--text-muted); font-size:8.5px; max-width:125px; text-align:right; text-transform:capitalize; }
.grid-context-card>b { color:var(--pv8-navy); font-size:16px; line-height:1.2; }
.grid-context-card>p { color:var(--text-muted); font-size:10.5px; line-height:1.45; margin:0; }
.grid-context-card dl { align-self:end; display:grid; gap:6px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.grid-context-card dl>div { border-left:2px solid #d4dfda; display:grid; gap:2px; padding-left:7px; }
.grid-context-card dt { color:var(--text-muted); font-size:8px; font-weight:700; text-transform:uppercase; }
.grid-context-card dd { color:var(--pv8-navy); font-size:10px; margin:0; }
.grid-context-lower { display:grid; gap:16px; grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr); margin-top:15px; }
.grid-context-lower>aside { background:#f4f7f5; border-radius:8px; padding:13px; }
.grid-context-actions { display:grid; gap:7px; list-style:none; margin:9px 0 0; padding:0; }
.grid-context-actions li { align-items:flex-start; border-top:1px solid #dce4e0; display:grid; gap:7px; grid-template-columns:90px 1fr auto; padding-top:7px; }
.grid-context-actions li:first-child { border-top:0; padding-top:0; }
.grid-context-actions li>span { color:#805f31; font-size:8px; font-weight:750; text-transform:uppercase; }
.grid-context-actions li>div { display:grid; gap:2px; }
.grid-context-actions b { color:var(--pv8-navy); font-size:10.5px; }
.grid-context-actions small { color:var(--text-muted); font-size:9.5px; line-height:1.35; }
.grid-context-sources { border:1px solid #dce4e0; border-radius:8px; padding:12px 13px; }
.grid-context-sources summary { color:var(--pv8-navy); cursor:pointer; font-size:11.5px; font-weight:700; }
.grid-context-sources>p { color:var(--text-muted); font-size:10.5px; line-height:1.4; }
.grid-context-source-list { display:grid; gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:9px; }
.grid-context-source { border:1px solid #dce4e0; border-radius:7px; display:grid; gap:6px; padding:10px; }
.grid-context-source header,.grid-context-source footer { align-items:flex-start; display:flex; gap:8px; justify-content:space-between; }
.grid-context-source header>div { display:grid; gap:2px; }
.grid-context-source header>div>span,.grid-context-source header>span { color:var(--text-muted); font-size:8px; text-transform:uppercase; }
.grid-context-source header b { color:var(--pv8-navy); font-size:10.5px; }
.grid-context-source p { color:var(--text-muted); font-size:9.5px; line-height:1.35; margin:0; }
.grid-context-source-classes { display:flex; flex-wrap:wrap; gap:3px; }
.grid-context-source-classes span { background:#e7efeb; border-radius:9px; color:#3c6559; font-size:7.5px; padding:3px 5px; }
.grid-context-source footer a { color:var(--series-1); font-size:9.5px; font-weight:650; }
.grid-context-source footer small { color:var(--text-muted); font-size:8px; text-align:right; }
#gridContextMsg { color:var(--serious); display:block; font-size:11px; margin-top:9px; }
.connection-resume-note { border-left:1px solid #9bc3b5; font-weight:650; margin-left:auto; padding-left:14px; }
.connection-source-list article { border-left:3px solid #88a69c; display:grid; gap:3px; padding:7px 10px; }
.connection-source-list article>div { display:flex; gap:9px; justify-content:space-between; }
.connection-source-list article>div span,.connection-source-list small { color:var(--text-muted); font-size:10px; }
.connection-source-list a { color:var(--series-1); font-size:12px; font-weight:650; }
.grid-connector-list { display:grid; gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid-connector-card { border:1px solid #d7e0dc; border-radius:9px; display:grid; gap:7px; padding:13px; }
.grid-connector-card.owner-data { background:#f2f8f5; border-color:#bad7cb; }
.grid-connector-card header { align-items:flex-start; display:flex; gap:12px; justify-content:space-between; }
.grid-connector-card header>div { display:grid; gap:3px; }
.grid-connector-card header>div>span { color:var(--text-muted); font-size:9px; font-weight:750; text-transform:uppercase; }
.grid-connector-card header b { color:var(--pv8-navy); font-size:12.5px; }
.grid-connector-card p,.grid-connector-card small { color:var(--text-muted); font-size:10.5px; margin:0; }
.grid-connector-card>a { color:var(--series-1); font-size:11px; font-weight:650; width:max-content; }
.grid-connector-status { background:#eee9df; border-radius:11px; color:#785f32; flex:none; font-size:8.5px; font-weight:750; padding:4px 7px; text-transform:uppercase; }
.grid-connector-status.ready { background:#d8eee5; color:#165a45; }
.grid-connector-consent { border-top:1px solid #d1e2db; display:grid; gap:8px; margin-top:3px; padding-top:9px; }
.grid-connector-consent label { align-items:flex-start; display:flex; font-size:10.5px; gap:7px; line-height:1.35; }
.grid-connector-consent input { margin-top:2px; }
.grid-connector-actions { align-items:center; border-top:1px solid #d1e2db; display:flex; gap:10px; justify-content:space-between; margin-top:3px; padding-top:9px; }
.connection-text-action { background:none; border:0; color:var(--serious); cursor:pointer; font-size:10.5px; padding:5px; }
#gridConnectorMsg { color:var(--serious); display:block; font-size:11.5px; margin-top:9px; }
.connection-share-panel { align-items:center; display:grid; gap:18px; grid-template-columns:1.25fr 1fr; }
.connection-share-panel p { color:var(--text-muted); font-size:12px; margin:6px 0 0; }
.connection-consent { display:grid; gap:10px; }
.connection-consent label { align-items:flex-start; display:flex; font-size:11.5px; gap:8px; line-height:1.4; }
.connection-consent input { margin-top:2px; }
.connection-next-actions { align-items:center; display:flex; gap:12px; justify-content:flex-end; }
.connection-next-actions span { color:var(--text-muted); font-size:11px; }
.connection-market-section { margin-top:2px; }
.connection-brief-grid { display:grid; gap:11px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:14px; }
.connection-brief-card { border:1px solid #dbe3df; border-radius:9px; display:grid; gap:11px; padding:14px; }
.connection-brief-card header,.connection-brief-card footer { align-items:center; display:flex; gap:10px; justify-content:space-between; }
.connection-brief-card header>div { display:grid; gap:1px; }
.connection-brief-card header span,.connection-brief-card footer small { color:var(--text-muted); font-size:10.5px; }
.connection-brief-capacity { display:grid; gap:5px; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; margin:0; padding:0; }
.connection-brief-capacity li { background:#f4f7f5; border-radius:6px; display:grid; gap:1px; padding:7px; }
.connection-brief-capacity span,.connection-brief-capacity small { color:var(--text-muted); font-size:9px; text-transform:uppercase; }
.connection-brief-capacity b { color:var(--pv8-navy); font-size:12px; }
.connection-brief-uses { display:flex; flex-wrap:wrap; gap:5px; }
.connection-brief-uses span { background:#e8f1ed; border-radius:10px; color:#365f53; font-size:9.5px; padding:4px 7px; }
.connection-brief-card>p { color:var(--text-muted); font-size:10.5px; margin:0; }
.connection-market-empty { color:var(--text-muted); display:grid; font-size:12px; gap:3px; padding:14px 0; }
.connection-empty { text-align:center; }

/* Module 11 — Grid Value & Connection Strategy. It shares the evidence language
   of Connection Exchange but is a normal workspace, not a modal. */
.grid-capacity-module { display:grid; gap:14px; max-width:1160px; padding:4px 0 34px; }
.grid-capacity-module>section,.grid-capacity-module>footer { background:#fff; border:1px solid var(--border); border-radius:11px; padding:18px; }
.grid-capacity-hero { align-items:flex-start; display:flex; gap:20px; justify-content:space-between; padding:10px 2px 4px; }
.grid-capacity-hero h1 { color:var(--pv8-navy); font-size:clamp(25px,3vw,39px); letter-spacing:-.035em; margin:6px 0 7px; }
.grid-capacity-hero p { color:var(--text-muted); font-size:13.5px; margin:0; max-width:780px; }
.grid-capacity-hero>.chip { flex:none; margin-top:22px; max-width:260px; padding:7px 10px; text-align:center; }
.grid-capacity-test { align-items:end; display:grid; gap:14px; grid-template-columns:minmax(280px,1fr) 190px auto; }
.grid-capacity-test h2,.grid-capacity-provenance h2,.grid-connectors-section h2,.grid-context-section h2 { color:var(--pv8-navy); font-size:18px; margin:4px 0; }
.grid-capacity-test p { color:var(--text-muted); font-size:11.5px; margin:0; }
.grid-capacity-test label { color:var(--text-muted); display:grid; font-size:10px; font-weight:700; gap:5px; text-transform:uppercase; }
.grid-capacity-test input { border:1px solid var(--border); border-radius:7px; color:var(--pv8-navy); font:inherit; font-size:13px; padding:10px; }
.grid-capacity-truth-grid { display:grid; gap:10px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid-capacity-truth { background:#fff; border:1px solid var(--border); border-radius:10px; display:grid; gap:5px; padding:16px; }
.grid-capacity-truth:before { background:#9aa7a2; border-radius:2px; content:""; height:3px; width:32px; }
.grid-capacity-truth.confirmed:before { background:var(--series-1); }
.grid-capacity-truth.public:before { background:var(--pv8-module-blue,#2b607f); }
.grid-capacity-truth.fit:before { background:var(--pv8-solar,#d8a035); }
.grid-capacity-truth>span { color:var(--text-muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.grid-capacity-truth>b { color:var(--pv8-navy); font-size:20px; }
.grid-capacity-truth>small { color:var(--text-muted); font-size:10.5px; }
.grid-capacity-provenance { display:grid; gap:14px; }
.grid-capacity-source-columns { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid-capacity-source-columns>div { background:#f7f9f8; border:1px solid var(--border); border-radius:9px; padding:14px; }
.grid-capacity-source-columns h3 { color:var(--pv8-navy); font-size:14px; margin:0 0 4px; }
.grid-capacity-source-columns>div>p { color:var(--text-muted); font-size:10.5px; margin:0 0 10px; }
.grid-capacity-source-grid { display:grid; gap:8px; }
.grid-capacity-source-card { background:#fff; border:1px solid var(--border); border-radius:7px; display:grid; gap:7px; padding:10px; }
.grid-capacity-source-card header { display:grid; gap:2px; }
.grid-capacity-source-card header>span { color:var(--series-1); font-size:8.5px; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.grid-capacity-source-card header>b { color:var(--pv8-navy); font-size:11.5px; }
.grid-capacity-source-card p { color:var(--text-muted); font-size:10px; margin:0; }
.grid-capacity-source-card footer { align-items:center; display:flex; gap:10px; justify-content:space-between; }
.grid-capacity-source-card footer a { color:var(--series-1); font-size:10.5px; font-weight:650; }
.grid-capacity-source-card footer small { color:var(--text-muted); font-size:9px; text-align:right; }
.grid-capacity-boundaries { background:#f8faf9 !important; }
.grid-capacity-boundaries ul { color:var(--text-muted); display:grid; font-size:11px; gap:5px; margin:9px 0 0; padding-left:19px; }
.grid-capacity-actions { align-items:center; display:flex; flex-wrap:wrap; gap:9px; }
.grid-capacity-loading { color:var(--text-muted); padding:28px 4px; }
.grid-capacity-loading h2 { color:var(--pv8-navy); margin:7px 0; }
.grid-strategy-module { max-width:1240px; }
.grid-strategy-nav { background:#edf3f0; border:1px solid #d8e3de; border-radius:12px; display:grid; gap:4px; grid-template-columns:repeat(4,minmax(0,1fr)); padding:5px; position:sticky; top:8px; z-index:12; }
.grid-strategy-nav button { background:transparent; border:0; border-radius:8px; color:#52645f; cursor:pointer; font:inherit; font-size:12px; font-weight:700; min-height:46px; padding:10px 12px; text-align:left; }
.grid-strategy-nav button:hover { color:var(--series-1); }
.grid-strategy-nav button.active { background:#fff; box-shadow:0 2px 9px rgba(15,42,35,.09); color:var(--pv8-navy); }
.grid-strategy-layer { display:grid; gap:14px; }
.grid-strategy-layer[hidden] { display:none !important; }
.grid-strategy-layer>section,.grid-strategy-layer>details,.grid-strategy-layer>footer { background:#fff; border:1px solid var(--border); border-radius:11px; padding:18px; }
.grid-decision-summary { display:grid; gap:0; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 !important; overflow:hidden; }
.grid-decision-summary article { border-right:1px solid var(--border); display:grid; gap:7px; min-height:118px; padding:18px; }
.grid-decision-summary article:last-child { border-right:0; }
.grid-decision-summary span,.grid-value-hero span,.grid-action-summary>div>span { color:#6e807a; font-size:10px; font-weight:700; text-transform:uppercase; }
.grid-decision-summary p { color:var(--pv8-navy); font-size:14px; font-weight:650; line-height:1.45; margin:0; }
.grid-capacity-map-section #gridCapMapWrap { border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.grid-capacity-map-section #gridCapCoverage { margin-top:8px; }
.grid-value-hero { align-items:center; background:var(--pv8-navy) !important; color:#fff; display:grid; gap:24px; grid-template-columns:minmax(240px,.75fr) minmax(320px,1.25fr); }
.grid-value-hero>div { display:grid; gap:4px; }
.grid-value-hero span,.grid-value-hero small { color:#bed0ca; }
.grid-value-hero b { font-size:clamp(25px,3vw,38px); letter-spacing:-.035em; }
.grid-value-hero p { color:#e5eeeb; font-size:15px; line-height:1.55; margin:0; }
.grid-option-grid { background:transparent !important; border:0 !important; display:grid; gap:12px; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 !important; }
.grid-option-card { background:#fff; border:1px solid var(--border); border-radius:11px; display:grid; gap:13px; padding:17px; }
.grid-option-card.positive { border-top:4px solid var(--series-1); }
.grid-option-card.negative { border-top:4px solid #b33d3d; }
.grid-option-card.incomplete { border-top:4px solid #c5a04b; }
.grid-option-card header { display:grid; gap:11px; }
.grid-option-card header span { color:#6e807a; font-size:9px; font-weight:750; text-transform:uppercase; }
.grid-option-card h3 { color:var(--pv8-navy); font-size:16px; margin:2px 0 0; }
.grid-option-card header>b { color:var(--pv8-navy); font-size:20px; }
.grid-option-card p,.grid-option-card>small { color:var(--text-muted); font-size:11px; line-height:1.45; margin:0; }
.grid-option-card dl { display:grid; gap:7px; margin:0; }
.grid-option-card dl div { align-items:center; border-top:1px solid var(--border); display:flex; justify-content:space-between; padding-top:7px; }
.grid-option-card dt { color:var(--text-muted); font-size:10px; }
.grid-option-card dd { color:var(--pv8-navy); font-size:11px; font-weight:700; margin:0; }
.grid-value-inputs { display:grid; gap:15px; }
.grid-value-inputs>header,.grid-monitor-config>header { align-items:flex-start; display:flex; gap:20px; justify-content:space-between; }
.grid-value-inputs h2,.grid-monitor-config h2,.grid-action-summary h2,.grid-service-layers h2,.grid-capacity-boundaries h2 { color:var(--pv8-navy); font-size:18px; margin:0 0 4px; }
.grid-value-inputs header p,.grid-monitor-config header p { color:var(--text-muted); font-size:11.5px; margin:0; }
.grid-assumption-grid { display:grid; gap:10px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.grid-assumption-grid label { background:#f7f9f8; border:1px solid var(--border); border-radius:8px; display:grid; gap:5px; padding:10px; }
.grid-assumption-grid label>span { color:#4f615b; font-size:10.5px; font-weight:700; }
.grid-assumption-grid label small { color:var(--text-muted); font-weight:500; }
.grid-assumption-grid input { background:#fff; border:1px solid #cfdad5; border-radius:6px; color:var(--pv8-navy); font:inherit; font-size:13px; padding:8px; width:100%; }
.grid-assumption-grid em { color:#85938e; font-size:8.5px; font-style:normal; text-transform:uppercase; }
.grid-monitor-config { display:grid; gap:13px; }
.grid-monitor-config>header>span { background:#e9f1ed; border-radius:12px; color:var(--series-1); font-size:10px; font-weight:750; padding:5px 9px; }
.grid-monitor-subjects { display:flex; flex-wrap:wrap; gap:7px; }
.grid-monitor-subjects label { background:#f4f7f5; border:1px solid var(--border); border-radius:18px; color:#42554f; font-size:11px; padding:7px 10px; }
.grid-monitor-toggle { align-items:center; color:var(--pv8-navy); display:flex; font-size:12px; gap:8px; }
.grid-capacity-provenance>summary { color:var(--pv8-navy); cursor:pointer; font-size:14px; font-weight:700; }
.grid-capacity-provenance[open]>summary { margin-bottom:16px; }
.grid-action-summary { display:grid; gap:24px; grid-template-columns:minmax(260px,.75fr) minmax(420px,1.25fr); }
.grid-action-summary>div>p { color:var(--text-muted); font-size:12px; line-height:1.5; }
.grid-execution-grid { background:transparent !important; border:0 !important; display:grid; gap:11px; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 !important; }
.grid-execution-grid article { background:#fff; border:1px solid var(--border); border-radius:11px; display:grid; gap:7px; min-height:178px; padding:17px; }
.grid-execution-grid article>span { color:#6d7f79; font-size:9px; font-weight:750; text-transform:uppercase; }
.grid-execution-grid h3 { color:var(--pv8-navy); font-size:16px; margin:0; }
.grid-execution-grid p { color:var(--text-muted); font-size:11px; line-height:1.5; margin:0 0 auto; }
.grid-execution-grid button { justify-self:start; }
.grid-service-layers ul { display:grid; gap:0; list-style:none; margin:12px 0; padding:0; }
.grid-service-layers li { align-items:center; border-top:1px solid var(--border); display:flex; gap:18px; justify-content:space-between; padding:11px 0; }
.grid-service-layers li b { color:var(--pv8-navy); font-size:12px; }
.grid-service-layers li span,.grid-service-layers>p { color:var(--text-muted); font-size:11px; }
.connection-module-handoff { align-items:center; background:#f0f6f3; border-color:#cfe0d9 !important; display:flex; gap:20px; justify-content:space-between; }
.connection-module-handoff h3 { color:var(--pv8-navy); margin:4px 0; }
.connection-module-handoff p { color:var(--text-muted); font-size:11.5px; margin:0; max-width:720px; }

.module-choice { max-width:1040px; padding:18px 4px 28px; }
.module-choice h1 { color:var(--pv8-navy); font-size:clamp(25px,3vw,40px); letter-spacing:-.035em; margin:7px 0 8px; }
.module-choice>p { color:var(--text-muted); font-size:13.5px; max-width:760px; }
.module-choice-grid { display:grid; gap:10px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:20px; }
.module-choice-card { background:#fff; border:1px solid var(--border); border-radius:10px; color:var(--text-primary); cursor:pointer; display:grid; gap:5px 12px; grid-template-columns:38px minmax(0,1fr) auto; padding:16px; text-align:left; transition:border-color .15s,transform .15s,box-shadow .15s; }
.module-choice-card:hover,.module-choice-card:focus-visible { border-color:var(--series-1); box-shadow:0 7px 22px rgba(15,42,35,.08); outline:none; transform:translateY(-1px); }
.module-choice-card-mark { align-items:center; align-self:start; background:#e5f1ed; border-radius:9px; color:var(--series-1); display:flex; grid-row:1/3; height:36px; justify-content:center; position:relative; width:36px; }
.module-choice-card-icon { fill:none; height:19px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; width:19px; }
.module-choice-card-mark i { align-items:center; background:var(--good,#0b7355); border:2px solid #fff; border-radius:50%; bottom:-5px; color:#fff; display:flex; font-size:8px; font-style:normal; font-weight:750; height:15px; justify-content:center; position:absolute; right:-5px; width:15px; }
.module-choice-card>b { color:var(--pv8-navy); font-size:14px; }
.module-choice-card>small { color:var(--text-muted); font-size:11px; line-height:1.4; }
.module-choice-card-status { align-self:start; color:var(--good,#0b7355); font-size:9px; font-weight:650; grid-column:3; grid-row:1; letter-spacing:.02em; white-space:nowrap; }

/* Connection-pooling chronology: time is never discarded in the primary
   view. The engineering duration curve remains an API output only. */
.pool-chart-shell { background:color-mix(in srgb,var(--surface-card,#fff) 94%,var(--series-1,#13755b)); border:1px solid var(--border); border-radius:12px; margin:12px 0 6px; padding:12px 14px 10px; }
.pool-chart-toolbar { align-items:center; display:flex; flex-wrap:wrap; gap:10px 18px; justify-content:space-between; margin-bottom:4px; }
.pool-range-group { align-items:center; display:flex; flex-wrap:wrap; gap:4px; }
.pool-range-group>span,.pool-chart-toolbar>label { color:var(--text-muted); font-size:11px; font-weight:650; }
.pool-range-group button { background:transparent; border:1px solid transparent; border-radius:999px; color:var(--text-muted); cursor:pointer; font:650 11px/1.2 var(--pv8-sans); padding:6px 10px; }
.pool-range-group button:hover,.pool-range-group button:focus-visible { border-color:var(--border-strong); color:var(--text-primary); outline:none; }
.pool-range-group button.active { background:var(--series-1); color:#fff; }
.pool-chart-toolbar select { border:1px solid var(--border-strong); border-radius:8px; font-size:12px; margin-left:6px; min-width:112px; padding:5px 8px; }
.pool-chart-svg { display:block; height:auto; max-height:290px; overflow:visible; width:100%; }
.pool-grid { stroke:var(--border); stroke-dasharray:3 5; stroke-width:1; }
.pool-axis { stroke:var(--border-strong); stroke-width:1; }
.pool-axis-label { fill:var(--text-muted); font:500 10px/1 var(--pv8-sans); }
.pool-before { fill:none; stroke:var(--text-primary); }
.pool-after { fill:none; stroke:var(--series-1); }
.pool-hover { fill:transparent; pointer-events:all; stroke:none; }
.pool-chart-legend { display:flex; gap:18px; justify-content:flex-end; margin:0 8px 2px; }
.pool-chart-legend span { color:var(--text-muted); font-size:10px; }
.pool-chart-legend span::before { border-top:3px solid var(--text-primary); content:""; display:inline-block; margin:0 6px 3px 0; width:18px; }
.pool-chart-legend .after::before { border-color:var(--series-1); }
.pool-chart-summary { color:var(--text-secondary); font-size:11px; line-height:1.45; margin-top:4px; }
.pool-interval-note { font-size:10px; margin-top:3px; }
.demo-data-banner { align-items:center; background:#fff8df; border:1px solid #e7c879; border-radius:8px; color:#765315; display:flex; gap:14px; margin-bottom:13px; padding:10px 13px; }
.demo-data-banner b { font-size:11px; letter-spacing:.08em; white-space:nowrap; }
.demo-data-banner span { font-size:11.5px; }

.libbtn.primary { background:var(--series-3); border-color:var(--series-3); color:#fff; }
.libbtn.primary:disabled { cursor:not-allowed; opacity:.45; }

/* -------------------------------------------------------------------------
   Specialist inputs — one quiet surface, following the Crypto workspace.

   The journey remains functional (autosave, validation, review), but its
   chrome no longer competes with the fields. Module-specific maps, warnings
   and evidence states keep their own stronger treatment where it carries
   meaning.
   ------------------------------------------------------------------------- */
.pv8-library .module-input-pane {
  background:var(--surface-1) !important;
  border:1px solid var(--border) !important;
  border-radius:10px !important;
  box-shadow:none !important;
  color:var(--text-primary) !important;
  margin:10px 0 18px !important;
  padding:14px 16px !important;
}
.pv8-library .module-input-pane > p.muted:first-of-type,
.pv8-library .module-input-pane > div.muted:first-of-type {
  color:var(--text-secondary);
  line-height:1.5;
  max-width:1040px;
}
.pv8-library .module-input-pane label {
  color:var(--text-secondary);
  font-size:12px;
  font-weight:450;
  line-height:1.3;
}
.pv8-library .module-input-pane input:not([type="radio"]):not([type="checkbox"]),
.pv8-library .module-input-pane select,
.pv8-library .module-input-pane textarea {
  margin-top:4px;
}
.pv8-library .module-input-pane input[type="radio"],
.pv8-library .module-input-pane input[type="checkbox"] {
  height:15px;
  min-height:0;
  width:15px;
}
.pv8-library .module-input-pane .rec-input-grid {
  align-items:end;
  gap:12px 16px;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.pv8-library .module-input-pane .rec-input-grid > h3,
.pv8-library .module-input-pane .rec-input-grid > details,
.pv8-library .module-input-pane .rec-input-grid > .gate,
.pv8-library .module-input-pane .rec-input-grid > .muted,
.pv8-library .module-input-pane #recEvidenceStep {
  grid-column:1/-1;
}
.pv8-library .module-input-pane .rec-input-grid > label:has(> input[type="checkbox"]) {
  align-items:center;
  align-self:end;
  display:flex;
  gap:7px;
  min-height:36px;
}
.pv8-library .module-input-pane .module-journey-nav {
  align-items:baseline;
  border:0;
  border-bottom:1px solid var(--grid);
  display:grid;
  gap:6px 0;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:42px auto 50px;
  margin:10px 0 16px;
  padding:0 0 12px;
}
.pv8-library .module-input-pane .module-draft-status {
  align-items:center;
  grid-column:1;
  height:42px;
  font-size:11px;
  max-height:42px;
  min-height:42px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  white-space:nowrap;
}
.pv8-library .module-input-pane .module-draft-status::-webkit-scrollbar { display:none; }
.pv8-library .module-input-pane .module-journey-progress {
  gap:6px;
  grid-column:1/-1;
  margin-top:0;
}
.pv8-library .module-input-pane .module-journey-progress button,
.pv8-library .module-input-pane .module-journey-progress button:first-child {
  background:transparent;
  border:0;
  border-bottom:2px solid #e6ece9;
  box-sizing:border-box;
  height:58px;
  max-height:58px;
  min-height:58px;
  overflow:hidden;
  padding:6px 8px;
}
.pv8-library .module-input-pane .module-journey-progress button:disabled {
  opacity:.62;
}
.pv8-library .module-input-pane .module-journey-progress button[data-state="current"] {
  background:#f3f8f6;
  border-bottom-color:var(--series-1);
  box-shadow:none;
}
.pv8-library .module-input-pane .module-journey-progress button[data-state="blocked"] {
  background:#fff9f6;
  border-bottom-color:#d9a998;
}
.pv8-library .module-input-pane .module-journey-progress b {
  font-size:11.5px;
}
.pv8-library .module-input-pane .module-journey-readiness-overview {
  align-items:center;
  display:flex;
  grid-column:1/-1;
  height:50px;
  margin-top:0;
  max-height:50px;
  min-height:50px;
  overflow:hidden;
}
.pv8-library .module-input-pane .journey-readiness-banner {
  background:transparent;
  border-left-width:3px;
  box-sizing:border-box;
  max-height:44px;
  min-height:44px;
  overflow:hidden;
  padding:3px 0 3px 9px;
  width:100%;
}
.pv8-library .module-input-pane .journey-readiness-banner.blocked {
  background:#fff9f6;
}
.pv8-library .module-input-pane .module-journey-step-head {
  margin:0 0 14px;
}
.pv8-library .module-input-pane .module-journey-step-head h3 {
  font-size:18px;
  font-weight:650;
}
.pv8-library .module-input-pane .module-journey-step-head p {
  /* #71807b was 4.14:1 on white — one notch below AA at 12 px. Use the
     shared secondary token so both palettes pass. */
  color:var(--text-secondary);
  font-size:12px;
}
.pv8-library .module-input-pane .module-input-section-active,
.pv8-library .module-input-pane .module-input-section-active.solution-card,
.pv8-library .module-input-pane.guided-journey-active > .solution-card,
.pv8-library .module-input-pane.guided-journey-active > section.solution-card {
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  margin:0 !important;
  padding:0 !important;
}
.pv8-library .module-input-pane .module-objective-grid,
.pv8-library .module-input-pane .ev-sizing-choice,
.pv8-library .module-input-pane .agri-choice-grid,
.pv8-library .module-input-pane .land-objective-grid {
  gap:8px;
}
.pv8-library .module-input-pane .module-objective-grid > label,
.pv8-library .module-input-pane .ev-sizing-choice > label,
.pv8-library .module-input-pane .agri-choice,
.pv8-library .module-input-pane .land-objective-grid > label {
  background:#fafcfb;
  border-color:#e1e8e5;
  border-radius:7px !important;
  min-height:0;
  padding:11px 12px;
}
.pv8-library .module-input-pane .module-objective-grid > label.active,
.pv8-library .module-input-pane .ev-sizing-choice > label:has(input:checked),
.pv8-library .module-input-pane .agri-choice:has(input:checked),
.pv8-library .module-input-pane .land-objective-grid > label.active {
  background:#f0f7f4;
  border-color:#91b9aa;
  box-shadow:inset 3px 0 0 var(--series-1);
}
.pv8-library .module-input-pane .module-objective-grid b,
.pv8-library .module-input-pane .ev-sizing-choice b,
.pv8-library .module-input-pane .land-objective-grid b {
  font-size:14px;
  margin-bottom:3px;
}
.pv8-library .module-input-pane .module-objective-grid span,
.pv8-library .module-input-pane .ev-sizing-choice small,
.pv8-library .module-input-pane .agri-choice small,
.pv8-library .module-input-pane .land-objective-grid span {
  font-size:11.5px;
  line-height:1.4;
  margin-top:3px;
}
.pv8-library .module-input-pane .module-journey-actions {
  border-top:1px solid var(--grid);
  margin-top:16px;
  padding-top:12px;
}
.pv8-library .module-input-pane .module-journey-review {
  background:transparent;
  border:0;
  padding:0;
}
.pv8-library .module-input-pane .module-journey-review h3 {
  font-size:18px;
}
.pv8-library .module-input-pane .journey-review-section {
  border-color:var(--grid);
}

@media (max-width:760px) {
  .pv8-library .module-input-pane { padding:12px !important; }
  .pv8-library .module-input-pane .module-journey-nav {
    grid-template-columns:1fr;
    grid-template-rows:72px auto 72px;
  }
  .pv8-library .module-input-pane .module-draft-status {
    align-content:center;
    flex-wrap:wrap;
    height:72px;
    margin-top:0;
    max-height:72px;
    min-height:72px;
    overflow:hidden;
    white-space:normal;
  }
  .pv8-library .module-input-pane .module-journey-readiness-overview {
    height:72px;
    max-height:72px;
    min-height:72px;
  }
  .pv8-library .module-input-pane .journey-readiness-banner {
    max-height:66px;
    min-height:66px;
  }
}

@media (max-width:760px) {
  .module-choice-grid { grid-template-columns:1fr; }
  .module-choice-card { grid-template-columns:38px minmax(0,1fr); }
  .module-choice-card-status { display:none; }
  .demo-data-banner { align-items:flex-start; flex-direction:column; gap:3px; }
  .pv8-library .layout > div:first-child { box-shadow:0 8px 18px rgba(15,42,35,.035); }
  .portfolio-pulse { gap:8px; }
  .expert-match-modal { padding:0; }
  .expert-match-shell { border-radius:0; min-height:100%; }
  .expert-match-title,.expert-match-create,.expert-match-existing { padding-left:18px; padding-right:18px; }
  .owner-first-strip { align-items:flex-start; flex-direction:column; gap:3px; padding-left:18px; padding-right:18px; }
  .expert-form-grid,.expert-privacy-grid,.expert-fit-grid,.expert-candidate-facts,
  .expert-reference-picker,.expert-reference-fields { grid-template-columns:1fr; }
  .managed-review-assignment dl { grid-template-columns:1fr; }
  .expert-stepper button { font-size:10px; }
  .expert-grant-row { align-items:stretch; flex-direction:column; }
  .connection-optionality-modal { align-items:stretch; padding:0; }
  .connection-shell { border-radius:0; max-height:100vh; }
  .connection-title,.connection-shell main { padding-left:18px; padding-right:18px; }
  .connection-honesty-strip { align-items:flex-start; flex-direction:column; gap:3px; padding-left:18px; padding-right:18px; }
  .connection-capacity-grid,.connection-metric-grid,.connection-candidate-grid,
  .connection-evidence-section,.connection-share-panel,.connection-brief-grid,
  .grid-connector-list,.grid-context-grid,.grid-context-lower,
  .grid-context-source-list { grid-template-columns:1fr; }
  .connection-passport-row { grid-template-columns:1fr 125px; }
  .connection-passport-row .connection-source-field { grid-column:1/-1; }
  .connection-time-row { grid-template-columns:1fr 1fr 1fr; }
  .connection-time-row>b { grid-column:1/-1; }
  .connection-meta-grid { grid-template-columns:1fr 1fr; }
  .connection-passport-facts { grid-template-columns:1fr 1fr; }
  .connection-next-actions { align-items:stretch; flex-direction:column; }
  .grid-capacity-hero,.connection-module-handoff { align-items:stretch; flex-direction:column; }
  .grid-capacity-hero>.chip { margin-top:0; }
  .grid-capacity-test,.grid-capacity-truth-grid,.grid-capacity-source-columns { grid-template-columns:1fr; }
  .grid-strategy-nav { grid-template-columns:1fr 1fr; position:static; }
  .grid-decision-summary,.grid-value-hero,.grid-option-grid,.grid-action-summary,
  .grid-execution-grid { grid-template-columns:1fr; }
  .grid-decision-summary article { border-bottom:1px solid var(--border); border-right:0; }
  .grid-assumption-grid { grid-template-columns:1fr 1fr; }
  .grid-value-inputs>header,.grid-monitor-config>header { align-items:stretch; flex-direction:column; }
  .grid-context-actions li { grid-template-columns:78px 1fr; }
  .grid-context-actions li>button { grid-column:2; justify-self:start; }
  .grid-context-refresh-state { align-items:flex-end; flex-direction:column; }
}

/* behavioral-comfort layer (2026-08-26) */
.pv8-library .qi-pin {
  background:var(--soft, #f2fbf6);
  border-left:3px solid var(--pv8-accent, #116b55);
  border-radius:0 6px 6px 0;
  color:var(--text-secondary, #53635e);
  display:block;
  font-size:12px;
  font-weight:400;
  line-height:1.45;
  margin:6px 0 2px;
  max-width:520px;
  padding:7px 10px;
}

/* Help is supporting UI, not a primary action.  Keep every module's question
   mark legible while preventing dense input and results screens from turning
   into a field of dark accent dots. */
.pv8-library .qi {
  background:color-mix(in srgb, var(--series-1) 10%, #fff);
  border:1px solid color-mix(in srgb, var(--series-1) 20%, #fff);
  color:color-mix(in srgb, var(--series-1) 58%, #fff);
  font-weight:650;
}
.pv8-library .qi:hover,
.pv8-library .qi:focus {
  background:color-mix(in srgb, var(--series-1) 16%, #fff);
  border-color:color-mix(in srgb, var(--series-1) 32%, #fff);
  color:color-mix(in srgb, var(--series-1) 78%, #fff);
}
.pv8-library .qi:focus-visible {
  outline-color:color-mix(in srgb, var(--series-1) 55%, #fff);
}
.pv8-library .closure-strip { margin-top:12px; }
.pv8-library .journey-rerun-note { opacity:.85; }

/* The workspace boots from small portfolio summaries.  Opening one asset is
   a short, contained transition rather than a page-level loading state. */
.pv8-library .asset-opening {
  align-items:center;
  background:var(--surface-1, #f5f8f7);
  border-left:3px solid var(--series-1, #116b55);
  display:grid;
  gap:2px 10px;
  grid-template-columns:auto minmax(0,1fr);
  margin:10px 0;
  padding:12px 14px;
}
.pv8-library .asset-opening .spin8 { grid-row:1 / span 2; }
.pv8-library .asset-opening span:last-child {
  color:var(--text-muted);
  font-size:11.5px;
}
.pv8-library .asset-list-more {
  justify-content:center;
  margin:9px 0 2px;
  width:100%;
}
.pv8-library #assetList.asset-list-attention {
  animation:asset-list-acknowledgement 1.6s ease-out;
  border-radius:8px;
}
@keyframes asset-list-acknowledgement {
  0%,18% { background:color-mix(in srgb,var(--series-1) 14%,#fff); box-shadow:inset 4px 0 0 var(--series-1); }
  100% { background:transparent; box-shadow:inset 4px 0 0 transparent; }
}
@media (prefers-reduced-motion:reduce) {
  .pv8-library #assetList.asset-list-attention {
    animation:none;
    background:color-mix(in srgb,var(--series-1) 10%,#fff);
    box-shadow:inset 4px 0 0 var(--series-1);
  }
}

/* Irrigation's action layer leads with client delivery.  The recommendation,
   economics and evidence trail remain available without repeating an entire
   results page above Share and discuss / Go to market. */
.pv8-library .water-output-actions { margin-top:0; max-width:none; }
.pv8-library .water-output-support {
  border:1px solid var(--grid);
  border-radius:9px;
  margin-top:18px;
  max-width:920px;
}
.pv8-library .water-output-support > summary {
  align-items:center;
  color:var(--text-secondary);
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  list-style:none;
  padding:12px 14px;
}
.pv8-library .water-output-support > summary::-webkit-details-marker { display:none; }
.pv8-library .water-output-support > summary b,
.pv8-library .water-output-support > summary small { display:block; }
.pv8-library .water-output-support > summary small { color:var(--text-muted); font-size:11px; margin-top:2px; }
.pv8-library .water-output-support[open] > summary > span:last-child { transform:rotate(45deg); }
.pv8-library .water-output-support-body { border-top:1px solid var(--grid); padding:14px; }

/* Owner-controlled recipient discovery. Candidate groups explain fit and
   provenance without marketplace ranks, sponsored order or bulk outreach. */
.rfi-shell {
  background:#fff; border-radius:10px; max-height:90vh; max-width:1040px;
  overflow:auto; padding:18px 20px; width:100%;
}
.rfi-owner-boundary {
  align-items:flex-start; background:#f0f7f4; border-left:4px solid var(--series-1);
  display:flex; gap:12px; margin:12px 0 8px; padding:10px 12px;
}
.rfi-owner-boundary b { flex:0 0 auto; }
.rfi-owner-boundary span { color:var(--text-secondary); font-size:12.5px; }
.rfi-locked-selection {
  align-items:flex-start; background:#f8fbfa; border:1px solid color-mix(in srgb,var(--series-1) 28%,#fff);
  border-radius:7px; display:flex; gap:12px; margin:8px 0 12px; padding:9px 11px;
}
.rfi-locked-selection b { color:var(--series-1); flex:0 0 auto; font-size:12px; }
.rfi-locked-selection span { color:var(--text-secondary); font-size:11.5px; }
.rfi-recipient-brief { border:1px solid var(--grid); border-radius:8px; margin:12px 0; padding:0; }
.rfi-recipient-brief > summary { cursor:pointer; font-weight:700; padding:11px 13px; }
.rfi-recipient-brief > dl {
  border-top:1px solid var(--grid); display:grid;
  grid-template-columns:120px minmax(0,1fr); margin:0; padding:10px 13px 2px;
}
.rfi-recipient-brief dt { color:var(--text-muted); font-size:11px; }
.rfi-recipient-brief dd { font-size:12px; margin:0 0 7px; }
.rfi-brief-columns { display:grid; gap:18px; grid-template-columns:repeat(2,minmax(0,1fr)); padding:2px 13px 12px; }
.rfi-brief-columns b { font-size:12px; }
.rfi-brief-columns ul { margin:5px 0 0 17px; }
.rfi-brief-columns li { color:var(--text-secondary); font-size:11.5px; }
.rfi-recipient-discovery { margin:15px 0; }
.rfi-section-heading { align-items:flex-end; display:flex; gap:16px; justify-content:space-between; margin-bottom:8px; }
.rfi-section-heading h3 { margin:0; }
.rfi-section-heading p { color:var(--text-muted); font-size:12px; margin:2px 0 0; }
.rfi-section-heading details { color:var(--text-secondary); font-size:10.5px; text-align:right; }
.rfi-section-heading summary { color:var(--series-1); cursor:pointer; font-weight:650; }
.rfi-recipient-groups { display:grid; gap:10px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.rfi-recipient-group { border:1px solid var(--grid); border-radius:8px; min-width:0; padding:10px; }
.rfi-recipient-group > header { align-items:flex-start; display:flex; gap:8px; justify-content:space-between; }
.rfi-recipient-group > header b { display:block; font-size:13px; }
.rfi-recipient-group > header small { color:var(--text-muted); display:block; font-size:10.5px; line-height:1.35; margin-top:2px; }
.rfi-recipient-group > header > span { background:var(--surface-1); border-radius:10px; color:var(--text-secondary); font:650 10px var(--pv8-mono); padding:2px 7px; }
.rfi-recipient-card { border-top:1px solid var(--grid); margin-top:9px; padding-top:9px; }
.rfi-recipient-card-head { align-items:flex-start; display:flex; gap:7px; justify-content:space-between; }
.rfi-recipient-card-head b { display:block; font-size:12.5px; }
.rfi-recipient-card-head small { color:var(--text-muted); display:block; font-size:10.5px; overflow-wrap:anywhere; }
.rfi-recipient-card-head .libbtn { flex:0 0 auto; font-size:10px; min-height:0; padding:5px 7px; }
.rfi-recipient-card p { color:var(--text-secondary); font-size:10.5px; line-height:1.4; margin:6px 0; }
.rfi-recipient-card p b { color:var(--text-primary); }
.rfi-recipient-card .rfi-recipient-gap { background:#fff9ed; padding:5px 6px; }
.rfi-recipient-provenance { color:var(--text-muted); font-size:10px; line-height:1.4; }
.rfi-recipient-provenance a { font-weight:600; }
.rfi-recipient-provenance small { color:var(--text-muted); }
.rfi-selected-heading { border-top:1px solid var(--grid); margin:17px 0 5px; padding-top:14px; }
.rfi-selected-recipient { background:var(--surface-1); margin-bottom:9px; min-height:38px; padding:8px 10px; }
.rfi-selected-recipient b { color:var(--text-primary); }
.rfi-recipient-fields { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.rfi-recipient-fields input { border:1px solid var(--border); border-radius:6px; box-sizing:border-box; padding:8px; width:100%; }
.rfi-run-link-choice {
  align-items:flex-start; background:#f0f7f4; border:1px solid #cfe1da;
  display:flex; gap:8px; margin-top:10px; padding:10px 11px;
}
.rfi-run-link-choice input { margin-top:2px; }
.rfi-run-link-choice b,.rfi-run-link-choice small { display:block; }
.rfi-run-link-choice small { color:var(--text-secondary); font-size:10.5px; line-height:1.45; margin-top:2px; }
.rfi-run-link-choice.disabled { background:var(--surface-1); border-color:var(--grid); }
.rfi-run-link-choice.disabled b,.rfi-run-link-choice.disabled small { color:var(--text-muted); }
.rfi-disclosure-approval { align-items:flex-start; background:#fff9ed; border:1px solid #ead9b2; display:flex; gap:8px; margin-top:10px; padding:9px 11px; }
.rfi-disclosure-approval input { margin-top:2px; }
.rfi-disclosure-approval b,.rfi-disclosure-approval small { display:block; }
.rfi-disclosure-approval small { color:var(--text-secondary); font-size:10.5px; margin-top:2px; }
@media(max-width:760px) {
  .rfi-shell { border-radius:0; max-height:100vh; padding:14px; }
  .rfi-owner-boundary { flex-direction:column; gap:3px; }
  .rfi-locked-selection { flex-direction:column; gap:3px; }
  .rfi-brief-columns,.rfi-recipient-groups,.rfi-recipient-fields { grid-template-columns:1fr; }
  .rfi-section-heading { align-items:flex-start; flex-direction:column; }
  .rfi-section-heading details { text-align:left; }
}

/* Workspace home (command center): one compact screen — a slim resume bar,
   a dense asset list and an activity rail (needs-you, used, never-used
   value routes) — instead of a tall hero above a wall of image cards. */
.pv8-library.workspace-home-mode > .asset-summary,
.pv8-library.workspace-home-mode .workspace-head { display:none; }
.pv8-library.workspace-home-mode .module-workspace { min-height:calc(100vh - 68px); }
.workspace-home { display:grid; gap:20px; }
/* slim resume bar */
.workspace-home-resume {
  align-items:center;
  background:var(--surface-1);
  border:1px solid var(--border);
  border-left:3px solid var(--series-3);
  border-radius:14px;
  display:flex;
  gap:18px;
  justify-content:space-between;
  padding:15px 20px;
}
.wh-resume-lead { flex:1 1 auto; min-width:0; }
.wh-eyebrow { color:var(--series-3); font:650 10px/1.2 var(--pv8-caption); letter-spacing:.06em; text-transform:uppercase; }
.pv8-library .workspace-home-resume h1 { color:var(--pv8-navy); font-size:clamp(19px,2.4vw,26px); font-weight:650; letter-spacing:-.02em; line-height:1.1; margin:5px 0 3px; }
.workspace-home-resume h1 b { font-weight:800; }
.wh-resume-sub { color:var(--text-secondary); font-size:12.5px; line-height:1.5; }
.workspace-home-hero-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; gap:9px; justify-content:flex-end; }
.workspace-home-resume .pv8-button.primary { background:#f0c85b; border-color:#f0c85b; color:#102a24; }
.workspace-home-resume .pv8-button.primary:hover { background:#ffda73; border-color:#ffda73; color:#102a24; }
.workspace-home-resume .pv8-button.secondary { background:transparent; border-color:var(--border); color:var(--series-3); max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.workspace-home-resume .pv8-button.secondary:hover { border-color:var(--series-3); }
/* two-column body */
.workspace-home-grid { align-items:start; display:grid; gap:20px; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); }
.workspace-home-section { min-width:0; }
.workspace-home-section-head { align-items:flex-end; display:flex; gap:20px; justify-content:space-between; margin-bottom:11px; }
.workspace-home-section-head > div:last-child { align-items:center; display:flex; flex-wrap:wrap; gap:7px; }
.pv8-library .workspace-home-section h2 { color:var(--pv8-navy); font-size:19px; letter-spacing:-.02em; margin:0 0 2px; }
.workspace-home-section-head p { color:var(--text-muted); font-size:12px; }
.workspace-home-section-head .libbtn { align-items:center; display:inline-flex; margin:0; text-decoration:none; }
/* dense asset list */
.workspace-home-assets { background:var(--surface-1); border:1px solid var(--border); border-radius:14px; display:grid; overflow:hidden; }
.wh-arow { align-items:center; border-top:1px solid var(--border); cursor:pointer; display:grid; gap:12px; grid-template-columns:34px minmax(0,1fr) auto; padding:11px 14px; }
.wh-arow:first-child { border-top:0; }
.wh-arow:hover,.wh-arow:focus-visible { background:var(--surface-0); outline:0; }
.wh-arow:focus-visible { box-shadow:inset 0 0 0 3px #9c7d47; }
.wh-chip { align-items:center; background:color-mix(in srgb,var(--series-3) 15%,var(--surface-0)); border-radius:9px; color:var(--series-3); display:flex; font:800 11px/1 var(--pv8-caption); height:34px; justify-content:center; width:34px; }
.wh-amain { min-width:0; }
.wh-aname { align-items:center; color:var(--pv8-navy); display:flex; font-size:14px; font-weight:650; gap:8px; line-height:1.25; overflow:hidden; }
.wh-resumepill { background:color-mix(in srgb,var(--series-3) 14%,transparent); border-radius:20px; color:var(--series-3); font:700 9px/1 var(--pv8-caption); letter-spacing:.05em; padding:3px 7px; text-transform:uppercase; }
.wh-ameta { color:var(--text-muted); font-size:12px; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wh-aright { align-items:flex-end; display:flex; flex:0 0 auto; flex-direction:column; gap:4px; text-align:right; }
.wh-verd { border-radius:20px; font:800 10.5px/1.3 var(--pv8-caption); padding:2px 8px; white-space:nowrap; }
.wh-verd.v-strong { background:color-mix(in srgb,var(--good) 14%,transparent); color:var(--good); }
.wh-verd.v-prom { background:color-mix(in srgb,var(--series-1) 14%,transparent); color:var(--series-1); }
.wh-verd.v-marg { background:color-mix(in srgb,var(--warning) 16%,transparent); color:var(--warning); }
.wh-verd.v-start { background:color-mix(in srgb,var(--text-muted) 14%,transparent); color:var(--text-muted); }
.wh-badge { background:color-mix(in srgb,var(--warning) 16%,transparent); border-radius:20px; color:var(--warning); font:800 10.5px/1.3 var(--pv8-caption); padding:2px 8px; }
.workspace-home-more { background:transparent; border:0; color:var(--series-1); cursor:pointer; font-size:12px; font-weight:650; margin-top:10px; padding:4px 0; }
/* activity rail */
.workspace-home-rail { display:flex; flex-direction:column; gap:16px; min-width:0; }
.wh-panel { background:var(--surface-1); border:1px solid var(--border); border-radius:14px; padding:14px 15px; }
.pv8-library .wh-panel h3 { color:var(--pv8-navy); font-size:14px; font-weight:650; letter-spacing:-.01em; margin:0 0 2px; }
.wh-desc { color:var(--text-muted); font-size:11.5px; margin:0 0 10px; }
.wh-needs { display:flex; flex-direction:column; gap:2px; margin:-4px -6px; }
.wh-need { align-items:center; background:transparent; border:0; border-radius:9px; cursor:pointer; display:flex; gap:10px; padding:8px 6px; text-align:left; width:100%; }
.wh-need:hover { background:var(--surface-0); }
.wh-nico { align-items:center; border-radius:8px; display:flex; flex:0 0 auto; height:26px; justify-content:center; width:26px; }
.wh-nico svg { height:15px; width:15px; }
.wh-nico.ni-exp { background:color-mix(in srgb,var(--series-1) 14%,transparent); color:var(--series-1); }
.wh-nico.ni-rfi { background:color-mix(in srgb,var(--good) 14%,transparent); color:var(--good); }
.wh-nico.ni-watch { background:color-mix(in srgb,var(--warning) 16%,transparent); color:var(--warning); }
.wh-ntxt { flex:1; min-width:0; }
.wh-ntxt b { color:var(--pv8-navy); display:block; font-size:13px; font-weight:650; }
.wh-ntxt small { color:var(--text-muted); display:block; font-size:11px; line-height:1.35; }
.wh-ncount { color:var(--pv8-navy); font:800 12px/1 var(--pv8-caption); }
.wh-arrow { color:var(--text-muted); font-weight:650; }
.wh-allclear { color:var(--text-muted); font-size:12.5px; line-height:1.5; padding:4px 0; }
/* module chips (used + never-used value routes) */
.workspace-home-modules { display:flex; flex-wrap:wrap; gap:7px; }
.wh-mchip { align-items:center; background:var(--surface-0); border:1px solid var(--border); border-radius:20px; color:var(--text-primary); cursor:pointer; display:inline-flex; font:650 12px/1 var(--pv8-caption); gap:6px; padding:7px 12px; }
.wh-mchip:hover { border-color:var(--series-3); }
.wh-mchip.new { background:color-mix(in srgb,var(--series-3) 8%,var(--surface-0)); border-color:color-mix(in srgb,var(--series-3) 30%,var(--border)); color:var(--series-3); }
.wh-empty { color:var(--text-muted); font-size:11.5px; line-height:1.5; }
@media(max-width:980px){
  .workspace-home-grid { grid-template-columns:1fr; }
}
@media(max-width:680px){
  .workspace-home { gap:16px; }
  .workspace-home-resume { align-items:flex-start; border-radius:13px; flex-direction:column; gap:12px; }
  .workspace-home-hero-actions,.workspace-home-resume .pv8-button { width:100%; }
  .workspace-home-resume .pv8-button.secondary { max-width:none; }
  .workspace-home-section-head { align-items:flex-start; flex-direction:column; gap:11px; }
  .workspace-home-section-head > div:last-child { width:100%; }
}

/* A long portfolio stays inside a compact asset browser instead of pushing
   the specialist-module navigation below the fold. */
.pv8-library .asset-browser {
  background:var(--surface-1);
  border:1px solid var(--border);
  border-radius:12px;
  margin:7px 10px 12px;
  overflow:hidden;
}
.pv8-library .asset-browser .asset-select-heading {
  border-bottom:1px solid var(--grid);
  padding:8px 9px;
}
.pv8-library .asset-select-copy { display:grid; gap:2px; }
.pv8-library .asset-select-copy small {
  color:var(--text-muted);
  font:500 9px/1.2 var(--pv8-sans);
  letter-spacing:0;
  text-transform:none;
}
.pv8-library .asset-browser #assetList {
  max-height:clamp(230px,36vh,410px);
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:6px;
  scrollbar-color:color-mix(in srgb,var(--series-1) 68%,transparent) var(--surface-2);
  scrollbar-gutter:stable;
  scrollbar-width:thin;
}
.pv8-library .asset-browser #assetList::-webkit-scrollbar { width:8px; }
.pv8-library .asset-browser #assetList::-webkit-scrollbar-track {
  background:var(--surface-2);
  border-radius:999px;
}
.pv8-library .asset-browser #assetList::-webkit-scrollbar-thumb {
  background:color-mix(in srgb,var(--series-1) 68%,transparent);
  border:2px solid var(--surface-2);
  border-radius:999px;
}
.pv8-library .asset-browser #assetList::-webkit-scrollbar-thumb:hover {
  background:color-mix(in srgb,var(--series-1) 88%,var(--surface-2));
}
.pv8-library .asset-browser #assetList .asset {
  margin-bottom:3px;
  min-height:0;
  padding:8px 9px;
}
.pv8-library .asset-browser #assetList .asset:last-child { margin-bottom:0; }
.pv8-library .asset-browser #assetList .asset > b {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pv8-library .asset-browser #assetList .asset > span {
  font-size:10.5px;
  line-height:1.25;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pv8-library .asset-browser #assetList .asset.sel {
  position:sticky;
  top:0;
  z-index:1;
}
.pv8-library .asset-browser #assetMap { padding:7px; }

/* Keep the Portfolio overview's copy of the asset picker on the same compact
   scrolling contract as the Library sidebar. */
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList {
  max-height:clamp(230px,36vh,410px);
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:6px;
  scrollbar-color:color-mix(in srgb,var(--series-1) 68%,transparent) var(--surface-2);
  scrollbar-gutter:stable;
  scrollbar-width:thin;
}
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList::-webkit-scrollbar { width:8px; }
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList::-webkit-scrollbar-track {
  background:var(--surface-2);
  border-radius:999px;
}
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList::-webkit-scrollbar-thumb {
  background:color-mix(in srgb,var(--series-1) 68%,transparent);
  border:2px solid var(--surface-2);
  border-radius:999px;
}
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList::-webkit-scrollbar-thumb:hover {
  background:color-mix(in srgb,var(--series-1) 88%,var(--surface-2));
}
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList .portfolio-asset-choice {
  margin-bottom:3px;
  min-height:0;
  padding:8px 9px;
}
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList .portfolio-asset-choice:last-child { margin-bottom:0; }
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList .portfolio-asset-choice > b,
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList .portfolio-asset-choice > span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pv8-portfolio .portfolio-asset-browser #portfolioAssetList .portfolio-asset-choice.selected {
  position:sticky;
  top:0;
  z-index:1;
}
.pv8-portfolio .portfolio-asset-browser #portfolioAssetMap { padding:7px; }
@media(max-width:680px){
  .pv8-library .asset-browser #assetList,
  .pv8-portfolio .portfolio-asset-browser #portfolioAssetList { max-height:min(48vh,390px); }
}

/* Universal interaction and motion baseline. This final shared rule prevents
   keyboard and motion behaviour from drifting between specialist modules. */
:where(a,button,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible {
  outline:3px solid #e2ad31;
  outline-offset:3px;
}
/* Card-grid arrows move focus without silently changing the selected asset.
   These explicit rules beat older component-specific outline resets. */
.pv8-library [data-pv8-card]:focus-visible {
  outline:3px solid var(--series-1);
  outline-offset:3px;
}
.pv8-library .workspace-home-assets [data-pv8-card]:focus-visible {
  outline-offset:-3px;
}
:where(button,.pv8-button,.libbtn,[role="button"]) { min-height:42px; }
.pv8-skip-link {
  background:#fff;
  border:2px solid #176d57;
  color:#102a24;
  left:12px;
  padding:10px 14px;
  position:fixed;
  top:12px;
  transform:translateY(-160%);
  z-index:100000;
}
.pv8-skip-link:focus { transform:translateY(0); }
.pv8-sr-only {
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  height:1px;
  overflow:hidden;
  position:absolute;
  white-space:nowrap;
  width:1px;
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}
@media (forced-colors: active) {
  :where(button,.pv8-button,.libbtn,[role="button"]) { border:1px solid ButtonText; }
}

/* The 2026-08-31 editorial experiment is retained below for reference but is
   deliberately inactive. Product screens use the original PV8 modernist
   palette and sans-serif type system; public acquisition styling now lives in
   pv8-landing.css and cannot leak into authenticated workspaces. */
@media not all {
/* -------------------------------------------------------------------------
   PV8 premium editorial skin · 2026-08-31

   This is deliberately a presentation-only layer. The existing cards, IDs,
   data attributes and journey states remain untouched so assessment logic and
   saved-output behaviour continue to work exactly as before. The visual system
   takes its cues from premium health and product interfaces: warm paper,
   editorial display type, calm surfaces, precise hairlines and restrained
   motion. It is PV8's own palette and component language, not a brand clone.
   ------------------------------------------------------------------------- */
:root {
  --surface-0:#f3f0e9;
  --surface-1:#fbfaf7;
  --surface-2:#ebe6dd;
  --border:#d8d2c8;
  --grid:#e7e2da;
  --text-primary:#25251f;
  --text-secondary:#625f57;
  --text-muted:#817d73;
  --series-1:#1c4b3e;
  --series-2:#456f61;
  --series-3:#1c4b3e;
  --series-4:#103a30;
  --good:#217154;
  --warning:#956b2f;
  --serious:#9d4338;
  --pv8-accent-soft:#e5ebe6;
  --pv8-ink-soft:#e9e5dc;
  --pv8-divider:#d8d2c8;
  --pv8-navy:#1f302a;
  --pv8-selected:#1c4b3e;
  --pv8-selected-ink:#fffdf8;
  --pv8-display:"Iowan Old Style","Baskerville","Times New Roman",serif;
  --pv8-shadow-sm:0 1px 1px rgba(39,36,30,.03),0 10px 30px rgba(39,36,30,.045);
  --pv8-shadow-md:0 2px 3px rgba(39,36,30,.035),0 20px 54px rgba(39,36,30,.085);
  --pv8-shadow-lg:0 28px 80px rgba(31,28,23,.12);
  --pv8-radius:20px;
  --pv8-radius-sm:14px;
}

html { background:var(--surface-0); scroll-behavior:smooth; }
body {
  background:
    radial-gradient(circle at 88% -10%,rgba(198,188,169,.22),transparent 32rem),
    var(--surface-0);
  color:var(--text-primary);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection { background:#d5dfd8; color:#17362d; }
a { color:var(--series-1); text-decoration-color:rgba(28,75,62,.38); }
a:hover { color:var(--series-4); }

/* Quiet, persistent product chrome. */
.pv8-library > header,
.pv8-profile > header,
.pv8-form-page > header,
.pv8-welcome > header {
  background:rgba(251,250,247,.9);
  border-bottom:1px solid rgba(87,80,69,.16);
  box-shadow:none;
  min-height:76px;
  padding:15px clamp(20px,3vw,48px);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  backdrop-filter:blur(18px) saturate(130%);
}
.pv8-brand { align-items:center; gap:20px; }
.pv8-brand :is(h1,.pv8-wordmark) {
  color:#1e2d28;
  font-size:23px;
  font-weight:650;
  letter-spacing:-.055em;
}
.pv8-brand :is(h1,.pv8-wordmark) span { color:#7f6c4c; }
.pv8-tagline {
  border-left:1px solid rgba(72,67,58,.22);
  color:#777168;
  font-size:9px;
  font-weight:600;
  letter-spacing:.11em;
  line-height:1.35;
  padding-left:20px;
}
.pv8-nav { gap:7px; }
.pv8-nav a,
.pv8-library .header-action {
  border-radius:999px;
  color:#5b5a53;
  font-size:12px;
  font-weight:550;
  padding:9px 12px;
  transition:background .18s ease,color .18s ease;
}
.pv8-nav a:hover,
.pv8-nav a[aria-current="page"],
.pv8-library .header-action:hover { background:#e9e5dc; color:#1d4036; }

/* Display hierarchy: serif is reserved for decisive page-level moments. */
.pv8-welcome .hero h1,
.workspace-home-hero h1,
.pv8-portfolio .hero h1,
.profile-title-row h1,
.module-choice h1,
.as-editorial-title {
  font-family:var(--pv8-display);
  font-weight:400;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.eyebrow,
.pv8-library .eyebrow,
.workspace-home-card-label {
  color:#796642;
  font-size:9px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}

/* Buttons feel tactile without looking software-heavy. */
.pv8-button,
.libbtn,
.pv8-form-page button,
.pv8-profile button,
.pv8-welcome .cta {
  border-radius:999px;
  box-shadow:none;
  font-weight:600;
  letter-spacing:-.01em;
  min-height:44px;
  padding:10px 18px;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.pv8-button.primary,
.libbtn.primary,
.pv8-form-page button:not(.secondary),
.pv8-profile button:not(.secondary),
.pv8-welcome .cta:not(.ghost) {
  background:#1e3e35;
  border-color:#1e3e35;
  color:#fffdf8;
}
.pv8-button.primary:hover,
.libbtn.primary:hover,
.pv8-form-page button:not(.secondary):hover,
.pv8-profile button:not(.secondary):hover,
.pv8-welcome .cta:not(.ghost):hover {
  background:#102f27;
  border-color:#102f27;
  box-shadow:0 11px 28px rgba(27,55,47,.16);
  color:#fff;
  transform:translateY(-1px);
}
.pv8-button.secondary,
.libbtn:not(.primary),
.pv8-welcome .cta.ghost {
  background:rgba(251,250,247,.78);
  border-color:#cfc9be;
  color:#2e332f;
}
.pv8-button.secondary:hover,
.libbtn:not(.primary):hover,
.pv8-welcome .cta.ghost:hover {
  background:#fffdf9;
  border-color:#9e978b;
  color:#1e3e35;
}
:where(a,button,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible {
  outline:2px solid #9c7d47;
  outline-offset:3px;
}

/* Shared premium card shell. Card semantics and click targets are unchanged. */
.pv8-library .card,
.pv8-portfolio #watchFeed,
.pv8-portfolio #opportunityMatrix,
.pv8-portfolio .asset,
.pv8-form-page .card,
.pv8-profile .card,
.profile-metrics,
.pv8-profile .readiness-banner,
.workspace-home-asset,
.pv8-library .workspace-home-module,
.module-choice-card,
.decision-step,
.solution-card,
.gate,
.run-record,
.opportunity-card {
  background:rgba(251,250,247,.94);
  border:1px solid rgba(111,103,90,.16);
  border-radius:var(--pv8-radius) !important;
  box-shadow:var(--pv8-shadow-sm);
}
.workspace-home-asset,
.pv8-library .workspace-home-module,
.module-choice-card,
.pv8-portfolio .asset {
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.workspace-home-asset:hover,
.workspace-home-asset:focus-visible,
.pv8-library .workspace-home-module:hover,
.module-choice-card:hover,
.module-choice-card:focus-visible,
.pv8-portfolio .asset:hover {
  border-color:rgba(72,99,88,.32);
  box-shadow:var(--pv8-shadow-md);
  transform:translateY(-3px);
}

/* Assessment workspace: warm navigation rail and calmer data canvas. */
.pv8-library { background:var(--surface-0); }
.asset-summary {
  background:#e9e5dc;
  border-bottom:1px solid rgba(91,84,72,.16);
  gap:1px;
}
.summary-cell {
  background:#f8f6f1;
  border-left:0;
  padding:15px clamp(15px,2vw,24px);
}
.summary-cell span { color:#817a6d; font-size:8.5px; letter-spacing:.1em; }
.summary-cell b { color:#26302c; font-size:15px; }
button.summary-cell:hover { background:#fffdf8; }
.pv8-library .layout > div:first-child {
  background:#ebe7df;
  border-right:1px solid rgba(91,84,72,.15);
}
.pv8-library .navigation-pane { background:transparent; box-shadow:none; }
.pv8-library .navigation-pane .asset-pane-head { padding-top:24px; }
.pv8-library .navigation-pane h2,
.pv8-library .workspace-home-section h2 { color:#26332e; }
.asset-links a,
.decision-nav a,
.pane-utility-links a,
.nav-section-toggle {
  border-radius:10px;
  color:#666158;
}
.asset-links a:hover,
.decision-nav a:hover,
.pane-utility-links a:hover,
.asset-links a.active,
.asset-links a[aria-current="page"] { background:rgba(255,253,248,.76); color:#173f34; }
.pv8-library main,
.pv8-library .content-pane { background:transparent; }
.pv8-library .content-pane > .card { margin:18px; }

/* Opportunity Workspace home: composed, image-led, and deliberately spacious. */
.workspace-home { gap:40px; padding:clamp(22px,3.5vw,54px); }
.workspace-home-hero {
  background:
    radial-gradient(circle at 82% 18%,rgba(196,176,128,.18),transparent 22rem),
    linear-gradient(128deg,#18382f 0%,#274b40 60%,#365a4e 100%);
  border:1px solid rgba(255,255,255,.08);
  border-radius:30px;
  box-shadow:var(--pv8-shadow-lg);
  min-height:290px;
  padding:clamp(34px,5vw,68px);
}
.workspace-home-hero::after { opacity:.32; }
.workspace-home-hero h1 {
  font-size:clamp(44px,5.3vw,72px);
  letter-spacing:-.055em;
  line-height:.94;
  max-width:850px;
}
.workspace-home-hero p { color:#d9e0dc; font-size:15px; max-width:720px; }
.workspace-home-hero .pv8-button.primary { background:#eee3cb; border-color:#eee3cb; color:#23372f; }
.workspace-home-hero .pv8-button.primary:hover { background:#fff7e6; border-color:#fff7e6; color:#172b24; }
.workspace-home-hero .pv8-button.secondary { border-color:rgba(255,255,255,.35); }
.workspace-home-section-head { margin-bottom:19px; }
.workspace-home-asset { overflow:hidden; }
.workspace-home-asset-visual { height:124px; }
.workspace-home-asset-copy { padding:21px 22px 20px; }
.workspace-home-asset h3 { font-size:20px; font-weight:580; }
.workspace-home-card-actions { margin-top:16px; padding-top:14px; }
.pv8-library .workspace-home-module {
  border-radius:18px !important;
  min-height:112px;
  padding:19px;
}
.workspace-home-module-mark { background:#e5e8df; border-radius:50%; height:46px; width:46px; }

/* Portfolio: premium dashboard, still card-led and information dense. */
.pv8-portfolio .portfolio-main { background:var(--surface-0); }
.pv8-portfolio .hero.portfolio-hero {
  background:
    radial-gradient(circle at 88% 6%,rgba(202,180,129,.16),transparent 21rem),
    #19372f;
  border:0;
  border-radius:0 0 32px 32px;
  box-shadow:var(--pv8-shadow-md);
  min-height:310px;
  padding:clamp(42px,5vw,76px) clamp(28px,5vw,78px);
}
.pv8-portfolio .hero h1 {
  font-size:clamp(44px,5vw,70px);
  line-height:.96;
  max-width:900px;
}
.pv8-portfolio .hero p { color:#d1dbd7; font-size:15px; }
.pv8-portfolio .hero .eyebrow { color:#d7c292; }
.pv8-portfolio .portfolio-hero .pv8-button.primary { background:#eee3cb; border-color:#eee3cb; color:#26362f; }
.pv8-portfolio main { padding-top:36px; }
.portfolio-pulse {
  background:rgba(251,250,247,.94);
  border:1px solid rgba(111,103,90,.16);
  border-radius:22px;
  box-shadow:var(--pv8-shadow-sm);
  overflow:hidden;
}
.portfolio-pulse article { padding:24px 26px; }
.portfolio-pulse article + article { border-left-color:var(--grid); }
.portfolio-pulse b { font-family:var(--pv8-display); font-size:31px; font-weight:400; }
.pv8-portfolio .asset-head { min-height:108px; padding:21px 24px; }
.pv8-portfolio .asset-detail { background:#f7f4ee; border-radius:0 0 20px 20px; }
.pv8-portfolio .caret { background:#e9e5dc; }

/* Module journeys remain step-and-card driven; framing becomes more editorial. */
.module-journey-nav,
.module-journey-readiness-overview,
.module-journey-review { border-radius:18px; }
.module-journey-progress {
  background:#e8e4dc;
  border:0;
  border-radius:14px;
  gap:1px;
  overflow:hidden;
}
.module-journey-progress button { background:#f7f5ef; border:0; min-height:66px; }
.module-journey-progress button[data-state="current"] { background:#1e3e35; color:#fff; }
.module-journey-step-head h3,
.module-journey-review h3 { color:#25332d; font-size:23px; font-weight:560; }
.pv8-library input,
.pv8-library select,
.pv8-library textarea,
.pv8-form-page input,
.pv8-form-page select,
.pv8-profile input,
.pv8-profile select,
.pv8-profile textarea {
  background:#fffdf9;
  border:1px solid #cfc9be;
  border-radius:12px;
  min-height:44px;
}
.pv8-library input:focus,
.pv8-library select:focus,
.pv8-library textarea:focus,
.pv8-form-page input:focus,
.pv8-form-page select:focus,
.pv8-profile input:focus,
.pv8-profile select:focus,
.pv8-profile textarea:focus {
  border-color:#637c72;
  box-shadow:0 0 0 4px rgba(52,91,78,.09);
  outline:0;
}

/* Public page: calm editorial first impression, no change to account flow. */
.pv8-welcome { background:var(--surface-0); }
.pv8-welcome .hero {
  background:
    radial-gradient(circle at 82% 10%,rgba(198,180,139,.22),transparent 27rem),
    linear-gradient(145deg,#f6f2ea 0%,#e7e9e2 100%);
  border-bottom:0;
  padding-bottom:clamp(64px,8vw,112px);
  padding-top:clamp(58px,7vw,102px);
}
.pv8-welcome .hero-grid { gap:clamp(42px,7vw,92px); }
.pv8-welcome .hero h1 {
  color:#21352e;
  font-size:clamp(54px,6.5vw,92px);
  line-height:.92;
  margin-bottom:30px;
  max-width:780px;
}
.pv8-welcome .hero p.hero-lede { color:#5e625d; font-size:19px; line-height:1.62; }
.pv8-welcome .hero-value-card {
  background:rgba(255,253,248,.58);
  border:1px solid rgba(102,95,83,.14);
  border-radius:18px;
  padding:17px 18px;
}
.pv8-welcome .teaser-embed,
.pv8-welcome .demo-video video { border-radius:24px; box-shadow:var(--pv8-shadow-lg); }
.pv8-welcome .modules,
.pv8-welcome .demo-video,
.pv8-welcome #accountPanel { border-bottom:0; padding-bottom:72px; padding-top:72px; }
.pv8-welcome .modules h2,
.pv8-welcome .demo-video h2,
.pv8-welcome .panel-cols h3 {
  color:#26362f;
  font-family:var(--pv8-display);
  font-size:clamp(30px,4vw,48px);
  font-weight:400;
}
.pv8-welcome .mod,
.pv8-welcome .price-card {
  background:rgba(251,250,247,.92);
  border:1px solid rgba(111,103,90,.16);
  border-radius:20px;
  box-shadow:var(--pv8-shadow-sm);
  padding:20px;
}
.pv8-welcome .mod { min-height:150px; }
.pv8-welcome .mod .mod-ico { margin-bottom:15px; }

/* Profile and form pages become paper-like, approachable work surfaces. */
.pv8-form-page,
.pv8-profile { background:var(--surface-0); }
.pv8-form-page > form { max-width:980px; padding-top:58px; }
.pv8-form-page .card,
.pv8-profile .card { padding:26px; }
.pv8-form-page .card h2,
.pv8-profile .card h2 { color:#28362f; font-size:17px; }
.pv8-profile .profile-nav {
  background:rgba(243,240,233,.88);
  border-radius:999px;
  padding:8px;
  top:10px;
}
.pv8-profile .profile-nav a { border-radius:999px; padding:10px 14px; }
.profile-title-row { padding-top:30px; }
.profile-title-row h1 { font-size:clamp(38px,4.6vw,60px); }
.profile-metrics { overflow:hidden; }
.profile-metric { padding:20px; }
.profile-metric b { font-family:var(--pv8-display); font-size:27px; font-weight:400; }

@media (max-width:900px) {
  .pv8-library > header,
  .pv8-profile > header,
  .pv8-form-page > header,
  .pv8-welcome > header { padding-left:18px; padding-right:18px; }
  .pv8-tagline { display:none; }
  .workspace-home { padding:22px 18px 42px; }
  .workspace-home-hero { border-radius:23px; padding:34px 24px; }
  .pv8-portfolio .hero.portfolio-hero { border-radius:0 0 24px 24px; }
}
@media (max-width:680px) {
  .pv8-brand :is(h1,.pv8-wordmark) { font-size:21px; }
  .pv8-library > header,
  .pv8-profile > header,
  .pv8-form-page > header,
  .pv8-welcome > header { min-height:66px; }
  .workspace-home-hero h1,
  .pv8-portfolio .hero h1 { font-size:42px; }
  .workspace-home-asset-visual { height:102px; }
  .pv8-library .content-pane > .card { margin:10px; }
  .pv8-welcome .hero { padding-left:20px; padding-right:20px; }
  .pv8-welcome .hero h1 { font-size:50px; }
  .pv8-welcome .modules,
  .pv8-welcome .demo-video { padding-left:20px; padding-right:20px; }
  .pv8-profile .profile-nav { border-radius:18px; margin-left:14px; margin-right:14px; }
  .pool-chart-shell { padding:10px 8px 8px; }
  .pool-chart-toolbar { align-items:flex-start; flex-direction:column; }
  .pool-range-group { width:100%; }
  .pool-range-group button { flex:1; padding-left:6px; padding-right:6px; }
  .pool-chart-svg { min-height:180px; }
}

} /* end intentionally inactive legacy premium-theme experiment */

/* Asset Profile density ---------------------------------------------------
   A portfolio may contain hundreds of plants. The profile must lead with the
   selected plant, not reproduce the whole portfolio as a wall of cards. The
   full workspace already owns asset switching; the standalone profile keeps
   the same capability in one compact control. */
.profile-asset-switcher {
  align-items:end;
  background:var(--surface-1);
  border:1px solid var(--border);
  border-radius:14px;
  display:grid;
  gap:14px;
  grid-template-columns:minmax(260px,1fr) max-content max-content;
  margin:0 auto 14px;
  max-width:1120px;
  padding:12px 16px;
}
.pv8-profile #assetPane.profile-asset-pane-compact {
  left:auto;
  margin:14px auto;
  max-width:1120px;
  position:static;
  top:auto;
  width:auto;
}
.profile-asset-switcher label { margin:0; }
.profile-asset-switcher label > span {
  color:var(--text-muted);
  display:block;
  font:600 9px/1.2 var(--pv8-mono);
  letter-spacing:.08em;
  margin-bottom:5px;
  text-transform:uppercase;
}
.profile-asset-switcher select { margin:0; max-width:none; width:100%; }
.profile-asset-switcher-meta { display:grid; gap:1px; min-width:130px; }
.profile-asset-switcher-meta b { color:var(--text-primary); font-size:12px; }
.profile-asset-switcher-meta span { color:var(--text-muted); font-size:11px; white-space:nowrap; }
.profile-asset-switcher > a { align-self:center; font-size:12px; font-weight:650; white-space:nowrap; }

/* In the embedded profile the surrounding workspace already supplies the
   asset, recent-work and watch controls. Remove the duplicate title block and
   tighten the remaining strip so the asset record starts in the first view. */
body.profile-workspace-mode .workspace-head { display:none; }
body.profile-workspace-mode .module-workspace { padding-top:10px; }
body.create-workspace-mode .asset-summary { display:none; }
body.create-workspace-mode .module-workspace { padding-top:10px; }
body.profile-workspace-mode .asset-summary { grid-template-columns:minmax(230px,1.4fr) minmax(190px,1fr) minmax(140px,.65fr); }
body.profile-workspace-mode .summary-cell { padding-bottom:9px; padding-top:9px; }
body.profile-workspace-mode .summary-cell span { margin-bottom:1px; }
body.profile-workspace-mode .summary-cell-links { margin-top:3px; }
.pv8-embed .profile-nav { margin-bottom:10px; margin-top:0; top:0; }
.pv8-embed .profile-title-row { margin-bottom:12px; padding-top:14px; }
.pv8-embed .profile-title-row h1 { font-size:clamp(28px,3vw,38px); }
.pv8-embed .profile-metrics { grid-template-columns:repeat(6,minmax(0,1fr)); }
.pv8-embed .profile-metric,
.pv8-embed .profile-metric:nth-child(3n+1),
.pv8-embed .profile-metric:nth-child(n+4) {
  border-left:1px solid var(--grid);
  border-top:0;
  padding:13px 14px;
}
.pv8-embed .profile-metric:first-child { border-left:0; }
.pv8-embed .profile-metric b { font-size:20px; }

@media(max-width:900px){
  .profile-asset-switcher { align-items:stretch; grid-template-columns:1fr auto; }
  .profile-asset-switcher-meta { display:none; }
  .pv8-embed .profile-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pv8-embed .profile-metric:nth-child(4) { border-left:0; }
  .pv8-embed .profile-metric:nth-child(n+4) { border-top:1px solid var(--grid); }
}
@media(max-width:600px){
  .profile-asset-switcher { grid-template-columns:1fr; }
  .profile-asset-switcher > a { justify-self:start; }
  body.profile-workspace-mode .asset-summary { grid-template-columns:1fr; }
  .pv8-embed .profile-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pv8-embed .profile-metric:nth-child(3),
  .pv8-embed .profile-metric:nth-child(5) { border-left:0; }
  .pv8-embed .profile-metric:nth-child(n+3) { border-top:1px solid var(--grid); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}

/* -------------------------------------------------------------------------
   PV8 shared dark/light surface contract — 2026-09-08 (epic #74 tranche)

   Light surface/text/border tokens come from the later product :root block
   in this file. library.html's higher-specificity explicit and OS-dark
   selectors supply their dark counterparts. This block only repairs the
   modal, command-palette and module-form copy exercised by the companion
   browser test. It deliberately does not change global focus styling,
   third-party map controls or untested component families.
   ------------------------------------------------------------------------- */

/* Browser placeholder defaults vary by engine. Scope the readable token to
   the four verified component surfaces instead of every library input, so
   map/geocoder and unrelated forms retain their existing cascade. */
.pv8-library .external-identity-modal input::placeholder,
.pv8-library #commentsModal input::placeholder,
.pv8-library .pv8-command-palette input::placeholder,
.pv8-library .module-input-pane input::placeholder,
.pv8-library .module-input-pane textarea::placeholder {
  color:var(--text-secondary);
  opacity:1;
}

/* Sentence copy in the three modal shells and module form must meet body-text
   contrast. Keep the global muted token unchanged for timestamps, chart axes
   and other microcopy that is outside this tranche. */
.pv8-library .external-identity-modal .muted,
.pv8-library #shareModal .muted,
.pv8-library #commentsModal .muted,
.pv8-library .module-input-pane .muted {
  color:var(--text-secondary);
}

/* The tested module-objective cards hardcode light fills in their base rules.
   Replace only that verified family in dark mode. */
:root[data-theme="dark"] .pv8-library .module-input-pane .module-objective-grid > label {
  background:var(--surface-0);
  border-color:var(--border);
  color:var(--text-primary);
}
:root[data-theme="dark"] .pv8-library .module-input-pane .module-objective-grid > label.active {
  background:color-mix(in srgb,var(--series-1) 22%,var(--surface-1));
  border-color:color-mix(in srgb,var(--series-1) 55%,var(--border));
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) .pv8-library .module-input-pane .module-objective-grid > label {
    background:var(--surface-0);
    border-color:var(--border);
    color:var(--text-primary);
  }
  :root:not([data-theme="light"]) .pv8-library .module-input-pane .module-objective-grid > label.active {
    background:color-mix(in srgb,var(--series-1) 22%,var(--surface-1));
    border-color:color-mix(in srgb,var(--series-1) 55%,var(--border));
  }
}
