/* Platform page. Shared components live in /assets/site.css; this file only adds pf-* layout and render details. */
:where(#main) :where(dl,dd,blockquote){margin:0}
.pf-mono{font-family:var(--mono);font-size:12px}
/* a long technical reference page: a slightly tighter band rhythm than the marketing pages */
#main{--section-y:96px}
@media (max-width:1079px){#main{--section-y:80px}}
@media (max-width:879px){#main{--section-y:48px}}

/* hero and workflow overview */
.pf-hero-grid{display:grid;gap:20px 24px}
@media (min-width:880px){.pf-hero-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}.pf-hero-title{grid-column:1/7}.pf-hero-lead{grid-column:8/13}}
.pf-hero .btn-row{margin-top:32px;gap:12px 28px}
.pf-flow{margin-top:56px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-panel);padding:32px 40px 40px;--c-bg:var(--paper)}
.pf-flow-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px;padding-bottom:20px;margin-bottom:32px;border-bottom:1px solid var(--line)}
.pf-flow .h4 a:hover{color:var(--signal-700)}
@media (max-width:1079px){.pf-flow .step .eyebrow{display:none}.pf-flow .step .h4{grid-row:1;align-self:center;margin-bottom:4px}}
@media (max-width:879px){.pf-flow{margin-top:40px;padding:24px 20px 28px}}

/* chapter pattern: text 1-5, visual 7-12, alternating */
.pf-chapter{display:grid;grid-template-columns:minmax(0,1fr);row-gap:48px}
@media (max-width:879px){.pf-chapter{row-gap:36px}}
.pf-text .body{margin-top:20px}
.pf-text .body,.pf-text .checks,.pf-note{max-width:560px}
.pf-visual{min-width:0;margin:0}
@media (min-width:1080px){.pf-chapter{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start}.pf-text{grid-column:1/6;grid-row:1;position:sticky;top:calc(var(--header-h) + 72px)}.pf-chapter>.pf-visual{grid-column:7/13;grid-row:1}.pf-rev>.pf-text{grid-column:8/13}.pf-rev>.pf-visual{grid-column:1/7}}
@media (max-width:1079px){.pf-visual{max-width:760px}}
.pf-sub{margin-top:96px}
.pf-sub .split-head{margin-bottom:40px}
@media (max-width:879px){.pf-sub{margin-top:64px}.pf-sub .split-head{margin-bottom:32px}}
.pf-note{margin-top:28px;padding-top:18px;border-top:1px solid var(--c-line)}
.pf-visual-label{font:600 12px/16px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);margin-bottom:14px}
#replay .split-head{align-items:start}
.pf-panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-frame);padding:24px 28px}
@media (max-width:639px){.pf-panel{padding:20px 14px}}

/* plan preview */
.pf-head-note{font-size:12px;color:var(--muted)}
.pf-toggle{position:relative;height:30px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-control);background:#fff;font:600 12px/16px var(--sans);color:var(--ink);cursor:pointer}
.pf-toggle::after{content:"";position:absolute;inset:-7px -4px}
.pf-toggle:hover{background:var(--paper)}
.pf-toggle[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
html:not(.js) .pf-toggle{display:none}
@media (min-width:480px){.pf-plan th{width:40%}.pf-vault th{width:34%}}
@media (max-width:479px){
  .pf-plan .kv-table th,.pf-plan .kv-table td,.pf-vault .kv-table th,.pf-vault .kv-table td{display:table-cell;padding:8px 0;border-top:1px solid var(--line)}
  .pf-plan .kv-table th,.pf-vault .kv-table th{width:36%;padding-right:12px}
  .pf-plan .kv-table tr:first-child :is(th,td),.pf-vault .kv-table tr:first-child :is(th,td){border-top:0}
}
.pf-json-wrap{padding:16px 20px 20px}
.pf-json-label{font:600 11px/14px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.pf-json{margin:0;padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:8px;font:12px/18px var(--mono);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}
.j-k{color:var(--muted)}
@media (max-width:639px){.pf-json{font-size:11px;padding:12px}.pf-head-note{display:none}}

/* attack: limits, search modes, oracles */
.pf-stats{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:560px;margin-top:40px;padding-top:24px;border-top:1px solid var(--c-line)}
.pf-stat{display:flex;flex-direction:column-reverse;gap:6px}
.pf-stat dt{font-size:14px;line-height:22px;color:var(--c-muted)}
.pf-modes{display:grid;gap:12px}
.pf-mode{display:grid;grid-template-columns:minmax(0,264px) minmax(0,1fr);gap:28px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:20px 24px}
.pf-mode p{margin-top:4px;font-size:14px;line-height:22px;color:var(--muted)}
.pf-mode .pf-mode-meta{margin-top:10px;font-size:13px}
@media (max-width:639px){.pf-mode{grid-template-columns:minmax(0,1fr);gap:16px;padding:20px}.pf-mode svg{max-width:300px}}
.pf-mode-meta code,.pf-oracle-type code,.pf-contract code,.pf-states code{display:inline-block;padding:1px 7px;border:1px solid var(--line);border-radius:var(--r-chip);background:var(--paper);font:500 13px/20px var(--mono);color:var(--ink)}
.pf-oracle-type code{background:#fff}
.pf-oracle-block{display:grid;gap:28px 24px}
.pf-oracle-head .body{margin-top:12px;max-width:560px}
@media (min-width:1080px){.pf-oracle-block{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}.pf-oracle-head{grid-column:1/5}.pf-oracles{grid-column:5/13}}
.pf-oracles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px;border-top:1px solid var(--line)}
.pf-oracles li{padding-top:20px}
.pf-oracle-type{margin-bottom:12px}
.pf-oracles .small{margin-top:4px}
@media (max-width:1079px){.pf-oracles{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-oracles li{padding:20px 0;border-bottom:1px solid var(--line)}}
@media (max-width:639px){.pf-oracles{grid-template-columns:minmax(0,1fr)}.pf-oracles li{display:grid;grid-template-columns:136px minmax(0,1fr);column-gap:16px;padding:14px 0}.pf-oracle-type{grid-row:1/3;margin:0}.pf-oracles .h5,.pf-oracles .small{grid-column:2}}

/* diagram additions (search modes, replay lanes) */
.diagram .dg-mono{font-family:var(--mono)}
.dg-dot{fill:var(--ink)}.dg-dot-on,.dg-pin-on{fill:var(--signal-600)}.dg-pin{fill:var(--line-strong)}
.dg-root,.dg-root-on,.dg-hollow{fill:#fff;stroke:var(--ink);stroke-width:1.5}.dg-root-on{stroke:var(--signal-600);stroke-width:2}.dg-hollow{stroke:var(--line-strong)}
.dg-fail,.dg-arrow,.dg-proof-head{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.dg-arrow{stroke:var(--line-strong)}.dg-proof-head{stroke:var(--signal-600);stroke-width:2}
.dg-pill{fill:var(--paper-2);stroke:var(--line-strong)}.dg-pill-on{fill:var(--signal-50);stroke:var(--signal-600);stroke-width:1.5}
.dg-mono.dg-signal,.dg-label.dg-signal{fill:var(--signal-700)}
.dg-sub{font-size:11px;fill:var(--muted)}.dg-rule{stroke:var(--line)}
.pf-lanes-n{display:none;max-width:400px}
@media (max-width:1079px){.pf-lanes{max-width:480px}.pf-lanes-w{display:none}.pf-lanes-n{display:block}}

/* observer and coverage */
.pf-kv-block{display:block}.pf-kv-block dt{margin-bottom:3px}.pf-kv-block dd{text-align:left}
.pf-pane-gap{margin-top:22px}
.pf-verify .verify-row:first-child{border-top:0}
.pf-verify .effect{text-align:right}
@media (max-width:639px){.pf-verify .verify-row{grid-template-columns:minmax(0,1fr) 18px;row-gap:4px}.pf-verify .label{grid-area:1/1}.pf-verify .effect{grid-area:2/1;text-align:left}.pf-verify .verify-row>:last-child{grid-area:1/2}}
.pf-cov-block{display:grid;grid-template-columns:minmax(0,1fr);gap:32px 24px}
.pf-cov-text .body{margin-top:16px}
@media (min-width:1080px){.pf-cov-block{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}.pf-cov-text{grid-column:1/5}.pf-cov-fig{grid-column:5/13;min-width:0}}
.pf-cov-summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:13px;line-height:18px}
.pf-cov-summary b{color:var(--ink)}
.pf-cov{--c-line-strong:var(--line);font-size:13px;line-height:18px}
.pf-cov th{padding-top:12px}
.pf-cov td{padding-block:9px}
.pf-cov :is(th,td):first-child{padding-left:20px}
.pf-cov :is(th,td):last-child{padding-right:20px}
.pf-cov tr:last-child td{border-bottom:0}
.pf-cov code{font-size:12px}
.pf-cov .dim{margin-left:6px;font-size:12px}
@media (max-width:639px){
  .pf-cov tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;padding:10px 16px}
  .pf-cov tr:last-child{border-bottom:0}
  .pf-cov td,.pf-cov td:first-child,.pf-cov td:last-child{padding:0;width:auto}
  .pf-cov td::before{display:none}
  .pf-cov td:nth-child(1){grid-area:2/1}
  .pf-cov td:nth-child(2){grid-area:1/1}
  .pf-cov td:nth-child(3){grid-area:1/2;text-align:right;color:var(--muted);font-size:12px}
  .pf-cov td:nth-child(4){grid-area:2/2;text-align:right}
  .pf-cov td:nth-child(1) code{color:var(--muted)}
}

/* review */
.pf-tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line)}
.pf-tri>div{padding:16px 20px}
.pf-tri>div+div{border-left:1px solid var(--line)}
.pf-tri code{font:600 14px/20px var(--mono);color:var(--ink)}
.pf-tri-note{margin-top:4px;font-size:12px;line-height:16px;color:var(--muted)}
.pf-field{margin-top:12px;height:36px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-control);font-size:12px;color:var(--muted)}
.pf-who{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}
.pf-who div{display:flex;gap:6px}.pf-who dt{color:var(--muted)}.pf-who code{font-size:12px}
@media (max-width:479px){.pf-tri>div{padding:12px}.pf-tri code{font-size:13px}}
@media (max-width:359px){.pf-tri{grid-template-columns:minmax(0,1fr)}.pf-tri>div+div{border-left:0;border-top:1px solid var(--line)}}

/* gate */
.pf-exit-list{margin-top:28px;max-width:560px}
.pf-exit-list .exit-row{padding:16px 0}
.pf-exit-list .exit-row p{margin-top:8px;font-size:14px;line-height:22px}
.pf-baseline{display:grid;gap:24px}
@media (min-width:1080px){.pf-baseline{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}.pf-baseline-text{grid-column:1/5}.pf-states{grid-column:5/13;grid-template-columns:repeat(4,minmax(0,1fr))}}
.pf-baseline .body{margin-top:12px}
.pf-states{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;border-top:1px solid var(--line)}
.pf-states li{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:22px}
.pf-states .pf-state-bad code{background:#FDF0EC;border-color:#F6C9BC;color:#A5301A}
@media (max-width:479px){.pf-states{grid-template-columns:minmax(0,1fr)}.pf-states li{display:grid;grid-template-columns:136px minmax(0,1fr);gap:16px;align-items:baseline;padding:12px 0}}

/* retest */
.pf-retest,.pf-retest+figcaption{max-width:480px}
.pf-quote{margin-top:16px;padding:12px 14px;background:var(--paper);border-left:2px solid var(--line-strong);border-radius:0 6px 6px 0;font:13px/20px var(--mono);color:var(--ink)}
.pf-rows{margin-top:16px}
.pf-rows div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--line);font-size:13px;line-height:18px}
.pf-rows dt{color:var(--muted)}.pf-rows dd{font-weight:500}

/* evidence vault and full record */
.pf-h-gap{margin-top:32px}
.pf-reports{margin-top:8px;max-width:560px}
.pf-vault{padding-bottom:10px}
.pf-vault-head{display:flex;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line)}
.pf-vault tr:first-child :is(th,td){border-top:0}
.pf-vault code{font-size:12px}
.pf-record-block{margin-top:96px}
.pf-record-block .split-head{margin-bottom:40px}
.pf-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 24px;padding:14px 20px;border-bottom:1px solid var(--line)}
.pf-meta dt{font:600 10.5px/14px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pf-meta dd{margin-top:3px;font-size:12px;line-height:16px;overflow-wrap:anywhere}
.pf-meta-wide{grid-column:span 2}
@media (max-width:879px){.pf-record-block{margin-top:72px}.pf-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-meta-wide{grid-column:1/-1}}
@media (max-width:479px){.pf-meta{grid-template-columns:minmax(0,1fr)}}
@media (min-width:880px){.pf-record .record-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.pf-record .pf-verif{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}}
.pf-vt td{white-space:nowrap}
.pf-vt td:last-child{text-align:left;width:auto}
.pf-vt .marker{margin-left:8px;vertical-align:-4px}
.pf-result{display:inline-flex;align-items:center;gap:8px;font-size:12px}
.pf-record .window-foot .pf-mono{font-size:11.5px;color:var(--ink)}
@media (max-width:879px){.pf-vt td{white-space:normal}}
@media (max-width:639px){.pf-vt.table-stack td{padding:3px 0;border:0;overflow-wrap:anywhere}}

/* quality */
.pf-defs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px;border-top:1px solid var(--line)}
.pf-defs>div{padding:24px 0}
.pf-defs dd{margin-top:8px;font-size:15px;line-height:24px}
@media (max-width:1079px){.pf-defs{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-defs>div{border-bottom:1px solid var(--line)}}
@media (max-width:639px){.pf-defs{column-gap:16px}.pf-defs>div{padding:16px 0}.pf-defs dd{font-size:14px;line-height:22px;margin-top:4px}}
@media (max-width:359px){.pf-defs{grid-template-columns:minmax(0,1fr)}}

/* connect, controls, modules */
.pf-contract{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:20px}
@media (max-width:639px){
  .pf-connect .card{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:14px;align-items:center}
  .pf-connect .icon-tile{margin:0}
  .pf-connect .h4{grid-column:2}
  .pf-connect .small,.pf-connect .pf-contract{grid-column:1/-1}
  .pf-connect .pf-contract{padding-top:14px}
}
.pf-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.pf-two .body{margin-top:8px}
@media (max-width:879px){.pf-two{grid-template-columns:minmax(0,1fr);gap:40px}}

/* specs */
.pf-specs-head{margin-bottom:40px}
.pf-specs-head .small{max-width:420px}
.pf-spec{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line-strong)}
.pf-spec>div{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:4px 24px;padding:12px 0;border-bottom:1px solid var(--line)}
.pf-spec dt{font:14px/22px var(--sans);color:var(--muted)}
.pf-spec dd{font-size:15px;line-height:22px;color:var(--ink);min-width:0}
.pf-spec code{font:500 13px/22px var(--mono)}
.pf-aside,.pf-aside code{color:var(--muted)}
.pf-kinds{display:block;margin-top:2px}
.pf-components a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.pf-components a:hover{color:var(--signal-700);text-decoration-color:currentColor}
@media (min-width:1080px){
  .pf-spec{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
  .pf-spec>.pf-spec-wide{grid-column:1/-1;grid-template-columns:calc((100% - 48px) * .2 - 9.6px) minmax(0,1fr)}
}
@media (max-width:479px){.pf-spec>div{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2px 14px;padding:10px 0}.pf-spec dt{font-size:13px;line-height:20px}.pf-spec dd{font-size:14px;line-height:20px}.pf-spec>.pf-spec-wide{grid-template-columns:minmax(0,1fr)}}
/* Verifier fixes: truncate the breadcrumb path before the case name; keep IDs whole; avoid orphan words. */
@media (min-width:640px){.window-crumb .crumb-long{display:flex;align-items:baseline;column-gap:.35em;min-width:0}.window-crumb .crumb-long>span{flex:0 1000 auto;min-width:1.5em}.window-crumb .crumb-long>b{flex:none;max-width:calc(100% - 2.6em);overflow:hidden;text-overflow:ellipsis}}
.pf-cov-summary .pf-mono{white-space:nowrap}
figcaption,.legend-item p,.pf-mode-text p{text-wrap:pretty}
