body.fw-export-active { overflow: hidden; }
.fw-export-host { color:#292929; font-family:Arial,Helvetica,sans-serif; line-height:1.3; }
.fw-export { position:fixed; inset:0; z-index:20000; overflow:auto; background:#e8e8e8; padding:0 24px 32px; }
.fw-toolbar { position:sticky; top:0; z-index:2; display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; padding:16px 24px; margin:0 -24px 24px; background:#fff; border-bottom:3px solid #efc341; box-shadow:0 2px 8px #0001; }
.fw-toolbar h2 { font-size:20px; margin:0 0 5px; }
.fw-toolbar p { font-size:13px; margin:0; }
.fw-actions { display:flex; gap:8px; margin-left:auto; }
.fw-options { display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; width:100%; font-size:12px; }
.fw-options label { display:flex; align-items:center; gap:6px; }
.fw-toolbar button,.fw-toolbar select { font:inherit; padding:8px 12px; border:1px solid #bbb; border-radius:5px; background:white; color:#292929; cursor:pointer; }
.fw-toolbar button.primary { background:#f2c745; border-color:#b98516; font-weight:700; }
.fw-toolbar button:focus-visible,.fw-toolbar select:focus-visible { outline:3px solid #b98516; outline-offset:2px; }
.fw-toolbar>small { flex-basis:100%; color:#666; font-size:11px; }
.fw-options input { accent-color:#a87900; }
.fw-sheet { box-sizing:border-box; width:979px; height:738px; margin:0 auto 24px; padding:14px 18px 10px; background:#fff; display:flex; flex-direction:column; box-shadow:0 2px 12px #0002; color:#292929; scroll-margin-top:180px; }
.fw-options select { width:auto; max-width:290px; }
.fw-paper-a4 .fw-sheet { width:1045px; height:716px; }
.fw-sheet header { display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:2px solid #292929; padding-bottom:8px; min-height:26px; }
.fw-sheet header span { max-width:640px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:13px; font-weight:700; }
.fw-sheet header small { white-space:nowrap; font-size:10px; }
.fw-sheet h2 { font-size:22px; line-height:1.2; margin:14px 0 12px; }
.fw-sheet h3 { margin:8px 0; font-size:12px; }
.fw-body { flex:1; min-height:0; }
.fw-haunch-checks { font-size:12px; line-height:1.35; }
.fw-haunch-checks p { margin:6px 0; }
.fw-haunch-checks .fw-table th:first-child { width:24%; }
.fw-haunch-checks .fw-table:first-of-type th:nth-child(2) { width:12%; }
.fw-haunch-checks .fw-table td { padding:5px 7px; }
.fw-sheet footer { display:flex; justify-content:space-between; gap:10px; font-size:10px; border-top:1px solid #bbb; padding-top:9px; margin-top:12px; }
.fw-stats { display:flex; gap:22px; align-items:center; font-size:12px; padding:10px 12px; background:#fff5d9; margin-bottom:12px; }
.fw-stats strong { font-size:19px; }
.fw-table { border-collapse:collapse; width:100%; table-layout:fixed; font-size:11px; line-height:1.25; }
.fw-table th { text-align:left; background:#f1f1f1; font-size:10px; padding:7px; border-bottom:1px solid #888; }
.fw-table td { padding:6px 7px; border-bottom:1px solid #ddd; vertical-align:middle; overflow-wrap:anywhere; }
.fw-table td span,.fw-table td small { display:block; }
.fw-table td small { color:#666; font-size:9px; margin-top:3px; }
.fw-parts td { height:46px; }
.fw-parts th:nth-child(1) { width:45px; }
.fw-parts th:nth-child(2) { width:80px; }
.fw-parts th:nth-child(3) { width:42%; }
.fw-parts img { object-fit:contain; display:block; }
.fw-note { font-size:10px; line-height:1.4; color:#666; margin:8px 0; }
.fw-scope { font-size:11px; line-height:1.45; margin:10px 0; padding:9px 12px; border-left:3px solid #d4aa2c; background:#f7f7f7; }
.fw-lead { font-size:13px; margin:0 0 4px; }
.fw-overview { display:grid; grid-template-columns:58% 1fr; gap:24px; }
.fw-overview svg { display:block; width:100%; max-height:420px; }
.fw-overview>div:last-child>svg { height:190px; }
.fw-overview .fw-table td { padding:4px 7px; }
.fw-wall-grid { display:grid; grid-template-columns:59% 1fr; gap:18px; }
.fw-wall-grid svg { display:block; width:100%; height:400px; }
.fw-locations th:first-child { width:55px; }
.fw-locations td { height:auto; padding:3px 7px; line-height:1.1; }
.fw-locations td div { line-height:1.1; }
.fw-locations td small { margin-top:2px; line-height:1.1; }
.fw-locations td b { font-size:10px; }
.fw-wall-parts { display:grid; grid-template-columns:1fr 1fr; gap:4px 10px; font-size:10px; }
.fw-register { font-size:10px; }
.fw-register td { height:16px; }
.fw-register th:nth-child(1),.fw-register th:nth-child(3) { width:35px; }
.fw-register th:nth-child(2) { width:175px; }
.fw-category th { background:#fff5d9; color:#5c490d; padding:4px 7px; border:0; font-size:11px; }
.fw-parts th:nth-child(3) { width:auto; }
.fw-parts th:last-child { width:64px; }
.fw-parts td { height:44px; }
.fw-cover-title h1 { margin:0 0 5px; font-size:25px; line-height:1.15; overflow-wrap:anywhere; }
.fw-cover-title p { margin:0 0 8px; color:#806514; letter-spacing:1.2px; font-size:10px; font-weight:700; }
.fw-cover-main { display:grid; grid-template-columns:minmax(0,72%) minmax(0,1fr); gap:18px; align-items:start; }
.fw-cover-assembly { display:block; width:100%; height:350px; }
.fw-cover-main .fw-note { text-align:center; margin:0 0 5px; }
.fw-cover-details { margin:6px 0 0; padding:0 0 0 16px; border-left:3px solid #e6be40; }
.fw-cover-details>div { margin:0 0 9px; }
.fw-cover-details dt { color:#737373; font-size:9px; text-transform:uppercase; margin:0 0 3px; }
.fw-cover-details dd { margin:0; font-size:12px; line-height:1.25; overflow-wrap:anywhere; }
.fw-cover-compact .fw-cover-details>div { margin-bottom:6px; }
.fw-cover-compact .fw-cover-details dt { line-height:1.2; }
.fw-cover-compact .fw-cover-details dd { font-size:11px; line-height:1.2; }
.fw-cover-dimensions { display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:10px; margin-top:8px; }
.fw-cover-dimensions>div { padding:8px 10px; background:#f3f3f3; border-top:2px solid #d3aa32; }
.fw-cover-dimensions span,.fw-cover-dimensions strong,.fw-cover-dimensions small { display:block; }
.fw-cover-dimensions span { font-size:10px; color:#666; margin-bottom:4px; }
.fw-cover-dimensions strong { font-size:17px; line-height:1.2; }
.fw-cover-dimensions small { margin-top:4px; font-size:9px; color:#666; }
.fw-plan-drawing { display:block; width:100%; height:490px; }
.fw-paper-a4 .fw-plan-drawing { height:470px; }
.fw-wall-half { display:grid; grid-template-columns:minmax(0,65%) minmax(0,1fr); gap:10px; height:250px; padding:4px 0; box-sizing:border-box; }
.fw-wall-half+ .fw-wall-half { border-top:2px solid #d7b544; margin-top:6px; padding-top:9px; }
.fw-wall-half>svg { display:block; width:100%; height:230px; }
.fw-wall-reference { min-width:0; }
.fw-wall-reference h3 { margin:3px 0 7px; font-size:11px; text-transform:uppercase; }
.fw-locations { font-size:11px; }
.fw-locations th { font-size:9px; padding:3px; }
.fw-locations th:first-child { width:60px; }
.fw-locations th:nth-child(2) { width:48%; }
.fw-locations td { font-size:10.5px; padding:1px 3px; line-height:1.05; }
.fw-locations td:nth-child(2) { font-family:Consolas,monospace; font-size:10px; white-space:nowrap; }
.fw-wall-note { padding-top:8px; border-top:1px solid #ccc; line-height:1.5; }
.fw-summary th:first-child { width:38px; }
.fw-summary th:nth-child(2) { width:28%; }
.fw-summary td { padding:7px 6px; font-size:11px; }
.fw-summary td span { font-size:10px; margin-top:3px; }
.fw-project-notes { font-size:14px; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; max-width:800px; }
.fw-hardware-notes pre { font:12px/1.55 Arial,Helvetica,sans-serif; white-space:pre-wrap; overflow-wrap:anywhere; }
@media print {
  body.fw-export-active { overflow:visible!important; background:white!important; margin:0!important; padding:0!important; }
  body.fw-export-active > :not(.fw-export-host) { display:none!important; }
  .fw-export-host,.fw-export { display:block!important; position:static!important; overflow:visible!important; padding:0!important; margin:0!important; background:white!important; }
  .fw-toolbar { display:none!important; }
  .fw-sheet { margin:0!important; box-shadow:none!important; break-after:page; page-break-after:always; break-inside:avoid; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .fw-sheet:last-child { break-after:auto; page-break-after:auto; }
  .fw-sheet h2,.fw-sheet h3,.fw-table,.fw-sheet svg { break-before:auto!important; break-after:auto!important; }
}

.fw-tie-columns th:nth-child(1) { width:80px; }
.fw-tie-columns th:nth-child(2) { width:78px; }
.fw-tie-columns th:nth-child(3) { width:110px; }
.fw-tie-columns th:last-child { width:42px; }
.fw-column-ties { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px 8px; }
.fw-column-ties span { white-space:nowrap; font-size:10px; }

.fw-corner-joints th:nth-child(1) { width:115px; }
.fw-corner-joints th:nth-child(2) { width:210px; }
.fw-corner-joints th:nth-child(3) { width:100px; }
.fw-corner-joints th:last-child { width:70px; }
.fw-corner-levels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 8px; }
.fw-corner-levels span { white-space:nowrap; font-size:10px; }
.fw-corner-notes { font-size:13px; line-height:1.5; }
.fw-assembly-steps { font-size:13px; line-height:1.5; }
.fw-assembly-steps ol { margin:0 0 16px; padding-left:26px; }
.fw-assembly-steps li { padding-left:7px; margin:0 0 12px; }
.fw-assembly-steps li::marker { font-weight:700; color:#8a6500; }
.fw-assembly-steps h3 { font-size:15px; margin:0 0 3px; }
.fw-assembly-steps p { margin:0; }
.fw-assembly-steps .fw-scope { margin-top:12px; }
.fw-assembly-steps .fw-note { margin-top:8px; }
.fw-crew-run p { font-size:10.5px; line-height:1.4; margin:0 0 7px; overflow-wrap:anywhere; }
.fw-crew-run h3 { font-size:10px; margin:6px 0 4px; }
.fw-crew-tie-rows td { padding:4px 7px; }

.fw-haunch-sources{font-size:10px;line-height:1.4}.fw-haunch-sources p{margin:7px 0}.fw-haunch-sources a{color:#795900}

.fw-haunch-detail svg{display:block;width:100%;height:350px}.fw-haunch-detail>p{font-size:12px;line-height:1.45}

/* Shared hardware guide: keep quantities and locations distinct from form stock. */
.fw-hardware-guide{color:#292929;min-width:0;margin:14px 0 22px}
.fw-hardware-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.fw-hardware-heading h2{font-size:20px;margin:0 0 6px}.fw-hardware-heading h3{font-size:16px;margin:0}.fw-hardware-heading p{font-size:13px;color:#666;margin:0}
.fw-hardware-actions{display:flex;gap:8px;flex-wrap:wrap}.fw-hardware-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 20px}
.fw-hardware-card{display:flex;align-items:flex-start;gap:16px;min-width:0;padding:18px;background:#fff;border:1px solid #d8d8d8;border-top:3px solid #d8ae2b;border-radius:8px}
.fw-hardware-card>img,.fw-hardware-images{width:88px;height:100px;flex:none;object-fit:contain}.fw-hardware-images{display:flex;gap:4px;align-items:center}.fw-hardware-images img{width:42px;height:92px;object-fit:contain}
.fw-hardware-card h3{font-size:16px;margin:0 0 7px}.fw-hardware-number{display:block;font-size:23px;line-height:1.25;margin:0 0 7px}.fw-hardware-badge{display:inline-block;background:#fff4d3;border:1px solid #e9d49a;border-radius:4px;padding:4px 7px;font-size:11px}
.fw-hardware-card p{font-size:13px;line-height:1.5;margin:10px 0 0}.fw-hardware-card .fw-hardware-small,.fw-hardware-small{font-size:12px;color:#666;line-height:1.5}
.fw-hardware-locations{padding:18px;background:#fff;border:1px solid #d8d8d8;border-radius:8px}.fw-hardware-locations h4{font-size:14px;margin:20px 0 10px}.fw-hardware-locations .fw-table{font-size:12px}.fw-hardware-locations select{margin-left:5px;min-width:160px}
.fw-hardware-row-list{display:flex;flex-wrap:wrap;gap:5px 12px}.fw-hardware-row-list span{white-space:nowrap}.fw-hardware-location-table th:last-child{width:37%}.fw-hardware-location-table td{padding:10px 8px}
.fw-hardware-footnote{font-size:12px;color:#666;margin:12px 0}.fw-hardware-other{padding:14px;background:white;margin-bottom:14px}
.fw-hardware-advanced{margin:18px 0;border:1px solid #d8d8d8;border-radius:6px;padding:14px;background:#fff}.fw-hardware-advanced>summary{font-size:13px;font-weight:600;cursor:pointer;margin-bottom:10px}
.fw-hardware-print .fw-hardware-cards{gap:12px;margin-bottom:18px}.fw-hardware-print .fw-hardware-card{padding:12px;gap:12px}.fw-hardware-print .fw-hardware-card p{font-size:11px;line-height:1.4}.fw-hardware-print .fw-hardware-number{font-size:20px}.fw-hardware-print .fw-hardware-card h3{font-size:14px}.fw-hardware-print .fw-hardware-badge{font-size:10px}.fw-hardware-print .fw-hardware-card>img,.fw-hardware-print .fw-hardware-images{width:62px;height:85px}.fw-hardware-print .fw-hardware-images img{width:29px;height:75px}.fw-hardware-print>.fw-table th:nth-child(2){width:19%}
.fw-hardware-jump{margin:8px 10px 0 0;padding:5px 10px!important;font-size:12px!important}
@media(max-width:760px){.fw-hardware-guide .fw-hardware-cards{grid-template-columns:1fr}.fw-hardware-locations{overflow-x:auto}.fw-hardware-guide .fw-hardware-card{padding:14px}.fw-hardware-number{font-size:20px}}

.fw-planning-count{margin:0 0 18px;padding:20px;border-top:3px solid #c49a22;background:#fff;color:#222}.fw-planning-count h3{margin:0}.fw-planning-totals{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:14px 0}.fw-planning-totals strong{font-size:22px}.fw-planning-count p{line-height:1.45}.fw-planning-count table{width:100%}.fw-planning-count details{margin-top:12px}.fw-planning-count summary,.fw-hardware-current summary{cursor:pointer;font-weight:600}.fw-hardware-current{margin:16px 0;padding:14px;background:white;border:1px solid #ddd;border-radius:6px}.fw-hardware-current .fw-hardware-cards{margin-top:16px}.fw-body .fw-planning-count{padding:9px;margin-bottom:8px;border-radius:0}.fw-body .fw-planning-count h3{font-size:13px}.fw-body .fw-planning-totals{gap:12px;margin:9px 0}.fw-body .fw-planning-totals strong{font-size:16px}.fw-body .fw-planning-count p{font-size:9px;margin:6px 0}.fw-body .fw-planning-table td{padding:4px 6px}@media(max-width:700px){.fw-planning-totals{grid-template-columns:1fr}.fw-planning-totals strong{font-size:19px}}
