.planner{padding-block:48px 80px}.planner-heading{max-width:800px;margin-bottom:36px}.planner-heading h1{font-size:clamp(2rem,4vw,3.1rem);line-height:1.4;margin:12px 0}.planner-heading p,.help,.planner-aside p{color:var(--muted)}.planner-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:64px;align-items:start}.input-section{padding:26px 0;border-top:1px solid var(--line)}.input-section h2{font-size:1.25rem;margin-bottom:18px}.input-section h2 span{color:var(--blue);margin-right:14px;font-size:1rem}.input-section label{display:block;margin:12px 0 7px;font-size:1rem}.input-section input:not([type=checkbox]),.input-section select,.input-section textarea{width:100%;font:inherit;background:#10202c;color:var(--text);border:1px solid #657b8d;border-radius:4px;padding:10px 12px}.input-section textarea{resize:vertical}.input-section select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.help{font-size:.875rem;margin-top:8px}.input-section .check-field{display:flex;gap:12px;align-items:baseline}.check-field input{width:18px;height:18px;accent-color:var(--blue)}.generate{margin-top:12px}.planner-aside{border-top:3px solid var(--blue);padding-top:26px;position:sticky;top:120px}.planner-aside h2{font-size:1.7rem;line-height:1.5;margin:16px 0 24px}.planner-aside ol{padding-left:24px}.planner-aside li{padding:12px 0 12px 10px}.scope-note{margin:24px 0;padding:20px;background:var(--panel);border-left:2px solid #d3b17c}.scope-note p{font-size:.9375rem;margin-top:8px}#form-error{color:#ffcbad}.proposal{margin-top:60px;border-top:1px solid var(--line);padding-top:24px;overflow-wrap:anywhere}.report-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:28px}.report-actions p{flex:1;min-width:160px}.report-header{border-bottom:2px solid var(--blue);padding-bottom:24px}.report-header h2{font-size:2rem;margin:12px 0}.proposal h3{font-size:1.35rem;margin:30px 0 14px}.proposal ul{padding-left:24px}.table-scroll{overflow:auto}.proposal table{width:100%;border-collapse:collapse;font-size:1rem}.proposal th,.proposal td{text-align:left;padding:14px;border-bottom:1px solid var(--line);vertical-align:top}.proposal th{background:var(--panel)}.proposal caption{text-align:left;color:var(--muted);padding-bottom:12px}.report-note{white-space:pre-wrap}.connection-path{display:flex;align-items:stretch;gap:12px;margin:14px 0}.connection-node{background:var(--panel);border:1px solid var(--line);padding:18px;flex:1}.connection-node strong{display:block}.connection-arrow{align-self:center;color:var(--blue)}[hidden]{display:none!important}@media(max-width:850px){.planner-layout{grid-template-columns:1fr;gap:32px}.planner-aside{position:static}.nav-links{gap:16px}}@media(max-width:480px){.field-pair{grid-template-columns:1fr}.connection-path{flex-direction:column}.connection-arrow{transform:rotate(90deg)}}@media print{@page{size:A4;margin:16mm}body{background:#fff!important;color:#111!important;font-size:11pt}.navbar,.planner-heading,.planner-layout,.footer,.report-actions,.skip-link{display:none!important}.container{width:100%}.planner,.proposal{padding:0;margin:0;border:0}.proposal{display:block!important}.proposal th,.connection-node{background:#f1f4f6!important;color:#111}.proposal td,.proposal th,.connection-node{border-color:#bbb}.proposal h3{break-after:avoid}.proposal tr,.connection-path{break-inside:avoid}.table-scroll{overflow:visible}.proposal table{font-size:10pt}.proposal th,.proposal td{padding:7px}.eyebrow,.help,.proposal caption{color:#444!important}.report-header h2{font-size:22pt}.proposal a{color:#111}.report-header{border-color:#333}}
.btn:disabled{opacity:.5;cursor:not-allowed}.proposal .report-note{margin-top:12px}.proposal p+p{margin-top:10px}
.diagram-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0}.diagram-tools span{font-size:.875rem;color:var(--muted)}.equipment-diagram{margin:20px 0}.diagram-scroll{overflow:auto;background:#f3f7fa;border-radius:8px}.equipment-diagram svg{display:block;width:100%;min-width:900px;height:auto}.equipment-diagram figcaption{color:var(--muted);font-size:.875rem;margin-top:12px}.diagram-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:3px}@media print{.diagram-tools{display:none!important}.diagram-scroll{overflow:visible}.equipment-diagram{break-inside:avoid}.equipment-diagram svg{min-width:0;width:100%}.equipment-diagram figcaption{color:#444}}
.workflow-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0;color:#bdcee0}.workflow-steps li{padding:14px 0;border-top:2px solid #4f7a9c;font-size:.9375rem}.image-workflow{border:1px solid var(--line);background:var(--panel);padding:28px;margin-bottom:48px}.image-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.image-heading h2{font-size:1.6rem;margin-top:10px}.workflow-status{color:#edc58d;font-size:.875rem}.image-toolbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:20px 0}.file-label{display:grid;gap:8px;font-size:.9375rem}.file-label input{max-width:100%;font-size:.875rem}.point-toolbar{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end;margin:22px 0}.point-toolbar label,.point-row label{display:grid;gap:6px;font-size:.875rem}.image-workflow input:not([type=file]),.image-workflow select{font:inherit;width:100%;min-width:0;padding:10px;background:#0a1925;color:#eff5fa;border:1px solid #657b8d;border-radius:4px}.image-stage{position:relative;background:#071018;border:1px solid #3d586b;cursor:crosshair}.image-stage img{width:100%;height:auto;display:block}.image-stage #scene-placeholder{padding:80px 24px;text-align:center;color:#a9c1d2;min-height:300px}#scene-placeholder strong{font-size:1.3rem;color:#e5eff6}#point-markers{position:absolute;inset:0;pointer-events:none}.point-marker{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;border:2px solid #88cfff;background:#0e2b42;color:#fff;font-weight:700;cursor:pointer}.point-list-heading{display:flex;justify-content:space-between;gap:16px;margin-top:24px}.point-list-heading span{color:var(--muted)}.point-row{display:grid;grid-template-columns:28px minmax(130px,1.5fr) minmax(150px,1.5fr) 76px 76px auto;gap:12px;align-items:end;padding:16px 0;border-bottom:1px solid var(--line)}.point-number{align-self:center;color:var(--blue)}.point-row button{padding:9px 12px}.image-workflow :focus-visible{outline:2px solid var(--blue);outline-offset:3px}input[readonly]{opacity:.7}.hmi-report{margin-top:32px}@media(max-width:950px){.point-row{grid-template-columns:28px 1fr 1fr}.point-row label:nth-child(4){grid-column:2}.point-row button{grid-column:3}.image-heading{display:block}.workflow-status{display:block;margin-top:12px}}@media(max-width:600px){.workflow-steps{grid-template-columns:1fr 1fr}.image-workflow{padding:18px}.point-toolbar{grid-template-columns:1fr}.point-row{grid-template-columns:1fr 1fr}.point-row .point-number{grid-column:1/-1}.point-row label:nth-child(4){grid-column:auto}.point-row button{grid-column:auto}.image-stage #scene-placeholder{padding:60px 16px}}@media print{.image-workflow,.workflow-steps{display:none!important}.hmi-report{break-before:page}}
.ocr-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:22px 0;padding:18px;border:1px solid #52748e;background:#0b1c28}.ocr-toolbar label{display:flex;gap:10px;align-items:center}.ocr-toolbar input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue)}.ocr-toolbar .help{flex-basis:100%;margin:0}.ocr-source{display:block;font-size:.75rem;line-height:1.4;color:#e2bc85;overflow-wrap:anywhere;margin-top:5px}.point-row{grid-template-columns:52px minmax(130px,1.5fr) minmax(150px,1.5fr) 76px 76px auto}@media(max-width:950px){.point-row{grid-template-columns:52px 1fr 1fr}}@media(max-width:600px){.point-row{grid-template-columns:1fr 1fr}}
.point-marker{touch-action:none;cursor:grab}.point-marker:active{cursor:grabbing}.ocr-evidence{color:#c5b08e;font-size:.8125rem;line-height:1.5}

.point-purpose{min-width:0}.peripheral-suggestion{display:grid;gap:.45rem;margin-top:.75rem;padding:.8rem;border-left:3px solid #60c9ce;background:#0b1d28;line-height:1.6;font-size:.86rem}.peripheral-suggestion a{color:#9ee3e7}.peripheral-suggestion small{display:block;color:#b6cad5}.peripheral-suggestion .peripheral-note{color:#edc58d}.point-row{align-items:start}

.point-summary{margin-top:24px;padding:20px;border:1px solid var(--line);background:#0a1925}.point-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:16px 0}.point-summary-grid span{display:block;color:var(--muted);font-size:.875rem}.point-summary-grid strong{display:block;font-size:1.8rem;color:var(--blue)}@media(max-width:600px){.point-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.capacity-verdict{padding:16px 20px;border-left:4px solid #79c8d0;background:var(--panel);font-weight:700}.capacity-verdict[data-fit="pending"]{border-color:#edc58d;color:#edc58d}.capacity-verdict[data-fit="over"]{border-color:#ffab91;color:#ffab91}

.print-diagrams{display:none}.report-meta{display:grid;grid-template-columns:110px 1fr;gap:10px 20px;margin:24px 0}.report-meta dd{margin:0}.report-meta dt{color:var(--muted)}.report-company{font-size:1.1rem}.report-project{font-size:1.6rem}.report-scope{max-width:720px;line-height:1.7}
@media print{
 @page{size:A4;margin:16mm 14mm 18mm;@bottom-center{content:"PELX 環控系統規範書 - " counter(page);font-size:9pt;color:#555}}
 html,body{margin:0!important;padding:0!important}.planner.container{max-width:none;width:100%}.proposal{overflow:visible}.report-header{min-height:225mm;box-sizing:border-box;break-after:page;border-bottom:0;padding-top:22mm}.report-header h2{font-size:30pt;line-height:1.5;margin:14mm 0 8mm}.report-header .report-project{font-size:20pt}.report-meta{margin:16mm 0;font-size:11pt;line-height:1.7}.report-meta dt{color:#555}.report-scope{font-size:10pt;border-top:1px solid #bbb;padding-top:8mm}.proposal h3{font-size:14pt;margin-top:9mm}.proposal p{line-height:1.6}.proposal table{table-layout:fixed;font-size:9pt;width:100%}.proposal td,.proposal th{overflow-wrap:anywhere;word-break:normal;line-height:1.5}.proposal thead{display:table-header-group}.proposal tr{break-inside:avoid}.capacity-verdict{color:#111!important;border-color:#555!important}.print-diagrams{display:block}.print-diagram-page{break-before:page;break-after:page}.print-diagram-page svg{width:100%;height:auto;max-height:225mm}.proposal #report-content>.equipment-diagram{display:none}.hmi-report{break-before:page}.hmi-report .equipment-diagram svg{width:100%;min-width:0;max-height:210mm}.hmi-report .table-scroll{break-before:page}.report-specifications{break-before:page}.report-note{white-space:pre-wrap}
}

@media print{html{background:#fff!important;color:#111!important}.capacity-verdict{background:#f1f4f6!important}.screen-connection-title{display:none}.proposal ul{break-inside:avoid}.proposal h3{break-after:avoid-page}.proposal li{break-inside:avoid}}
@media print{:root{color-scheme:light!important;--bg:#fff;--panel:#f1f4f6;--text:#111;--muted:#555;--line:#bbb}@page{background:#fff}.proposal{color:#111!important}}
@media print{*:focus,*:focus-visible{outline:none!important}.proposal #report-content>.equipment-diagram{display:block}.proposal #report-content>.equipment-diagram:has(+ .print-diagrams:not(:empty)){display:none}}

.capacity-verdict[data-fit="over-distance"]{border-color:#ffab91;color:#ffab91}

.point-row{grid-template-columns:52px minmax(150px,1fr) minmax(180px,1.3fr) auto}@media(max-width:950px){.point-row{grid-template-columns:40px minmax(0,1fr) auto}.point-row>label{grid-column:2}.point-row .point-purpose{grid-column:2;grid-row:2}.point-row button{grid-column:3;grid-row:1}}@media(max-width:600px){.point-row{grid-template-columns:minmax(0,1fr) auto}.point-row .point-number{grid-column:1;grid-row:1}.point-row>label{grid-column:1/-1;grid-row:2}.point-row .point-purpose{grid-column:1/-1;grid-row:3}.point-row button{grid-column:2;grid-row:1}}

/* Manual-inspired formal report: cover, contents and image-led chapters. */
.report-brand{width:180px;height:auto;margin-bottom:24px}.report-toc{margin:36px 0;padding:28px;border:1px solid var(--line)}.report-toc ol{list-style:none;padding:0}.report-toc a{display:grid;grid-template-columns:40px 1fr 24px;gap:16px;padding:15px 0;border-bottom:1px dotted var(--line);text-decoration:none;color:inherit}.report-chapter{margin-top:48px}.report-chapter>h3{border-bottom:2px solid #387aa2;padding-bottom:14px}.report-chapter h4{font-size:1.1rem;margin:22px 0 12px}.scene-origin figure{margin:20px 0}.scene-origin img{display:block;width:100%;max-height:650px;object-fit:contain;background:#f1f4f6}.scene-origin figcaption,.report-product figcaption{font-size:.8rem;color:var(--muted);margin-top:10px}.report-product{display:grid;grid-template-columns:220px 1fr;gap:28px;padding:24px 0;border-bottom:1px solid var(--line);break-inside:avoid}.report-product figure{margin:0}.report-product img{display:block;width:100%;height:180px;object-fit:contain;background:#fff}.report-product h4{margin-top:0}.report-product p{font-size:.95rem}.report-products{margin-bottom:28px}
@media(max-width:600px){.report-product{grid-template-columns:1fr}.report-product img{height:160px}}
@media print{
 @page:first{@bottom-center{content:none}}
 .report-brand{width:48mm;margin-bottom:10mm}.report-header{padding-top:12mm;border-top:4mm solid #1a3f7a;min-height:240mm}.report-header h2{color:#1a3f7a;margin-top:12mm}.report-meta{margin:10mm 0}.report-header .eyebrow{letter-spacing:1.5px}.report-toc{break-before:page;break-after:page;margin:0;padding:12mm 0;border:0;min-height:220mm}.report-toc h3{font-size:24pt;color:#1a3f7a}.report-toc a{padding:5mm 0;border-color:#aaa}.report-toc .toc-note{margin-top:12mm;font-size:10pt}.report-chapter{break-before:page;margin:0}.report-chapter>h3{margin:0 0 6mm;padding-bottom:3mm;color:#1a3f7a;font-size:17pt}.report-chapter h4{color:#244f8f;font-size:12pt;break-after:avoid-page}.scene-origin img{max-height:155mm}.scene-origin figure{break-inside:avoid;margin:6mm 0}.scene-origin figcaption,.report-product figcaption{color:#555;font-size:8pt}.hmi-report .annotated-scene{break-inside:avoid}.hmi-report .annotated-scene svg{max-height:200mm}.scene-origin~h4{break-before:page}.report-product{grid-template-columns:52mm 1fr;gap:7mm;padding:6mm 0}.report-product img{height:43mm}.report-product p{font-size:10pt;line-height:1.5}.report-product h4{margin-top:0}.report-specifications>.table-scroll{break-before:page}.report-chapter .screen-connection-title{display:block}.print-diagram-page:first-child{break-before:auto}.print-diagram-page{break-after:auto}.print-diagram-page h3{margin-top:4mm}.report-chapter>.equipment-diagram:has(+ .print-diagrams:not(:empty)){display:none}.report-chapter .equipment-diagram:has(+ .print-diagrams:empty){display:block}
}
@media print{.print-diagrams+.table-scroll{break-before:page}.report-toc a span:last-child{visibility:hidden}}

@media print{.equipment-spec-summary{break-before:page}}

.photo-bom .bom-photo{width:22%;text-align:center}.photo-bom img{display:block;width:100%;height:90px;object-fit:contain;background:#fff}.photo-bom small{display:block;font-size:8pt;line-height:1.4;color:#666}.photo-bom th:nth-child(1){width:22%}.photo-bom th:nth-child(2){width:22%}.photo-bom th:nth-child(3){width:9%}.photo-bom th:nth-child(4){width:32%}.photo-bom th:nth-child(5){width:15%}

.architecture-capacity{break-inside:avoid;border:1px solid #bccbd5;padding:12px;margin-top:12px}.architecture-capacity h4{margin:0 0 8px}.architecture-capacity dl{display:grid;grid-template-columns:110px 1fr;gap:3px 14px;margin:0;font-size:10pt}.architecture-capacity dd{margin:0}.architecture-capacity .capacity-verdict{margin:8px 0 0;padding:6px 10px;font-size:10pt}

.point-toolbar [hidden],.point-purpose [hidden]{display:none!important}.point-purpose label+label{margin-top:12px}@media(min-width:951px){.point-toolbar:has(#wireless-type-field:not([hidden])){grid-template-columns:1fr 1fr 1fr auto}}
