/* Proposal document, part 2: floor plan, Gantt, commercials, notes; screen stage, bid-desk rail, phone reflow and print. */
.pd-plan { position: relative; border-radius: 1.6mm; overflow: hidden; box-shadow: inset 0 0 0 0.5pt var(--pd-rule); }
.pd-plan img { width: 100%; height: auto; }
.pd-marks { position: absolute; inset: 0; }
.pd-mark { position: absolute; border: 1.4px solid var(--pd-teal); background: rgba(11, 95, 120, 0.1); border-radius: 2px; }
.pd-mark > span, .pd-dot { display: inline-grid; place-items: center; min-width: 15px; height: 15px; padding: 0 3px; border-radius: 99px; background: var(--pd-teal); color: #fff; font: 600 8.5px var(--mono); }
.pd-place .pd-dot { justify-self: start; }
.pd-mark > span { position: absolute; left: -8px; top: -8px; box-shadow: 0 0 0 1.5px #fff; }
.pd-mark.cam { border-color: #a45a00; background: rgba(164, 90, 0, 0.1); } .pd-mark.cam > span, .pd-dot.cam { background: #a45a00; }
.pd-mark.ext { border-color: var(--pd-graph); background: rgba(62, 68, 73, 0.08); } .pd-mark.ext > span, .pd-dot.ext { background: var(--pd-graph); }
.pd-place { margin-top: 3mm; display: grid; grid-template-columns: 1fr 1fr; gap: 0 6mm; }
.pd-place > div { display: grid; grid-template-columns: 6mm 1fr; gap: 1mm; padding: 1.6mm 0; border-bottom: 0.5pt solid var(--pd-rule); font-size: 8.4pt; align-items: start; }
.pd-plan img { max-height: 150mm; object-fit: contain; }

/* Gantt */
.pd-gantt { display: grid; }
.pd-g-row { display: grid; grid-template-columns: 38% 1fr; gap: 4mm; padding: 2.2mm 0; border-bottom: 0.5pt solid var(--pd-rule); align-items: center; }
.pd-g-head { border-bottom: 0.8pt solid var(--pd-ink); padding: 0 0 1.6mm; }
.pd-g-name b { font-weight: 600; font-size: 8.4pt; }
.pd-g-track { position: relative; height: 7mm; }
.pd-g-grid i { position: absolute; top: 0; bottom: 0; width: 0; border-left: 0.5pt dotted var(--pd-rule); }
.pd-g-head .pd-g-track { height: 3.4mm; }
.pd-g-head .pd-g-track span { position: absolute; font: 6.4pt var(--mono); color: var(--pd-ink3); }
.pd-g-bar { position: absolute; top: 1.4mm; bottom: 1.4mm; border-radius: 1mm; background: var(--pd-teal); display: flex; align-items: center; overflow: hidden; transform-origin: left center; }
.pd-g-bar.alt { background: var(--pd-acc); }
.pd-g-bar span { font: 600 6.4pt var(--mono); color: #fff; padding: 0 1.6mm; white-space: nowrap; }
.pd-g-bar.out-r, .pd-g-bar.out-l { overflow: visible; }
.pd-g-bar.out-r span, .pd-g-bar.out-l span { position: absolute; color: var(--pd-ink2); padding: 0; }
.pd-g-bar.out-r span { left: calc(100% + 1.4mm); } .pd-g-bar.out-l span { right: calc(100% + 1.4mm); }

/* Commercials */
.pd-tot td { font-size: 9.2pt; }
.pd-tot .sub td { font-weight: 560; }
.pd-total { font-size: 15pt !important; font-weight: 640; letter-spacing: -0.02em; }
.pd-ms { display: flex; gap: 1.5mm; margin: 1mm 0 3mm; }
.pd-ms > div { border-top: 2.4pt solid var(--pd-teal); padding-top: 1.8mm; min-width: 24%; }
.pd-ms > div:nth-child(2) { border-color: #5b98ab; } .pd-ms > div:nth-child(3) { border-color: #a9cbd6; }
.pd-ms b { display: block; font-size: 12pt; font-weight: 600; }
.pd-ms span { display: block; font-size: 7.4pt; color: var(--pd-ink2); line-height: 1.3; }

/* Sign-off and notes */
.pd-sign { margin-top: 2mm; break-inside: avoid; }
.pd-sign p { font-family: var(--pd-serif); font-size: 10.3pt; }
.pd-sign-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12mm; margin-top: 5mm; font-size: 8.8pt; }
.pd-sign-line { height: 13mm; border-bottom: 0.8pt solid var(--pd-ink); margin: 1mm 0 2mm; }
.pd-notes ol { list-style: none; margin: 0; padding: 0; }
.pd-notes li { display: grid; grid-template-columns: 8mm 1fr; padding: 2mm 0; border-bottom: 0.5pt solid var(--pd-rule); font-size: 8.4pt; }
.pd-notes li .pd-mono { color: var(--pd-teal); }
.pd-notes li:target { background: var(--pd-teal-soft); }

/* Screen: the desk the sheets sit on, toolbar and bid-desk rail */
.pd-page { max-width: 1320px; }
.pd-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.pd-top h1 { font-size: 22px; line-height: 1.25; font-weight: 550; letter-spacing: -0.025em; margin: 4px 0 0; max-width: 720px; }
.pd-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pd-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 288px; gap: 20px; align-items: start; }
.pd-stage { background: #ebeae5; border-radius: 16px; padding: 28px 0 6px; overflow: hidden; box-shadow: inset 0 0 0 0.5px var(--line); min-width: 0; }
.pd-stage .pd-doc { transform-origin: top center; }
.pd-rail { position: sticky; top: 16px; display: grid; gap: 12px; }
.pd-rail .card { padding: 16px; }
.pd-rail h4 { margin: 0 0 10px; font-size: 12px; font-weight: 550; color: var(--ink-3); letter-spacing: 0.01em; display: flex; justify-content: space-between; align-items: center; }
.pd-gauge { display: flex; align-items: center; gap: 14px; }
.pd-gauge svg { flex: none; }
.pd-verdict { font-size: 20px; font-weight: 610; letter-spacing: -0.02em; }
.pd-verdict.go { color: var(--ok); } .pd-verdict.conditional { color: var(--warn); } .pd-verdict.no_go { color: var(--bad); }
.pd-reasons { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 13px; line-height: 18px; color: var(--ink-2); }
.pd-reasons li { padding-left: 14px; position: relative; }
.pd-reasons li::before { content: ''; position: absolute; left: 0; top: 7px; width: 5px; height: 5px; border-radius: 50%; background: var(--ink-4); }
.pd-steps { display: grid; gap: 2px; }
.pd-step { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 8px; align-items: center; font-size: 13px; padding: 5px 0; }
.pd-step .ico { color: var(--ok); }
.pd-model { font-family: var(--mono); font-size: 10.5px; padding: 1px 6px; border-radius: 6px; background: var(--surface-2); color: var(--ink-2); white-space: nowrap; }
.pd-model.wonder { background: #efe9fb; color: #5b3fa8; } .pd-model.sam { background: #e6f2ec; color: #276749; } .pd-model.image { background: #fdeee4; color: #b4480b; } .pd-model.spark { background: #e6f0f6; color: #22648a; }
.pd-refs { display: flex; flex-wrap: wrap; gap: 6px; }
.pd-refs .chip { font-family: var(--mono); font-size: 11px; }
.pd-rules { display: grid; gap: 8px; font-size: 12.5px; line-height: 17px; color: var(--ink-2); }
.pd-rules b { font-family: var(--mono); font-size: 10.5px; color: var(--accent); margin-right: 6px; font-weight: 500; }

/* Reveal: sheets rise in sequence on first open */
.pd-reveal .pd-sheet { animation: pd-rise 700ms var(--ease) backwards; }
.pd-reveal .pd-sheet:nth-child(2) { animation-delay: 90ms; } .pd-reveal .pd-sheet:nth-child(3) { animation-delay: 180ms; } .pd-reveal .pd-sheet:nth-child(n+4) { animation-delay: 260ms; }
.pd-reveal .pd-g-bar { animation: pd-grow 900ms var(--ease) backwards; animation-delay: calc(400ms + var(--d, 0ms)); }
@keyframes pd-rise { from { opacity: 0; transform: translateY(18px) scale(0.985); } }
@keyframes pd-grow { from { transform: scaleX(0); } }

@media screen and (max-width: 1280px) {
  .pd-wrap { grid-template-columns: 1fr; }
  .pd-rail { position: static; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
@media screen {
  .pd-fluid .pd-stage { padding: 12px 0 0; background: transparent; box-shadow: none; }
  .pd-fluid .pd-sheet { width: 100%; height: auto; margin-bottom: 14px; border-radius: 10px; }
  .pd-fluid .pd-body { overflow: visible; padding: 18px 16px 8px; }
  .pd-fluid .pd-run { margin: 14px 16px 0; } .pd-fluid .pd-foot { margin: 0 16px 14px; }
  .pd-fluid .pd-cover-wrap { padding: 18px 16px 0; }
  .pd-fluid .pd-title { font-size: 26px; margin-top: 28px; }
  .pd-fluid .pd-meta, .pd-fluid .pd-figures { grid-template-columns: 1fr 1fr; }
  .pd-fluid .pd-meta > div:nth-child(3), .pd-fluid .pd-figures > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .pd-fluid .pd-figures.three { grid-template-columns: 1fr; }
  .pd-fluid .pd-figures.three > div { padding-left: 0; border-left: 0; }
  .pd-fluid .pd-place, .pd-fluid .pd-two, .pd-fluid .pd-cover-foot, .pd-fluid .pd-sign-row { grid-template-columns: 1fr; }
  .pd-fluid .pd-scroll, .pd-fluid .pd-svg { overflow-x: auto; }
  .pd-fluid .pd-wire { min-width: 640px; } .pd-fluid .pd-arch { min-width: 480px; }
  .pd-fluid .pd-bom { min-width: 560px; } .pd-fluid .pd-wp { min-width: 480px; }
  .pd-fluid .pd-comp th:nth-child(4), .pd-fluid .pd-comp td:nth-child(4) { display: none; }
  .pd-fluid .pd-g-row { grid-template-columns: 1fr; gap: 6px; }
  .pd-fluid .pd-legend { margin-left: 0; flex-wrap: wrap; }
  .pd-fluid .pd-doc { font-size: 12px; }
}

@media print {
  @page { size: A4; margin: 0; }
  html, body, .app, .main, .main-inner { background: #fff !important; }
  .side, .topbar, .pd-rail, .pd-top, .toast-wrap, .pv-backdrop { display: none !important; }
  .app { display: block; } .main { padding: 0; } .main-inner { box-shadow: none; border-radius: 0; min-height: 0; }
  .page { padding: 0 !important; max-width: none !important; }
  .pd-wrap { display: block; } .pd-stage { background: none; padding: 0; box-shadow: none; border-radius: 0; }
  .pd-stage .pd-doc { zoom: 1 !important; }
  .pd-sheet { margin: 0; box-shadow: none; break-after: page; page-break-after: always; }
  .pd-sheet:last-child { break-after: auto; page-break-after: auto; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; animation: none !important; }
  .pd-fn a, .pd-cite { text-decoration: none; }
}
