.cb{--brand:#1f3864;--brand2:#2e5496;--logo:#006bb6;--line:#d8dee9;--muted:#5b6472;--bg:#eef1f5;color:#1f2733;font-family:Calibri,Segoe UI,Arial,sans-serif;font-size:15px}.cb h1,.cb h2,.cb h3,.cb h4{text-transform:none;letter-spacing:normal;margin:0;font-family:inherit}.cb .wrap{grid-template-columns:minmax(320px,380px) 1fr;align-items:start;gap:20px;max-width:1180px;margin:0 auto;padding:18px;display:grid}@media (width<=980px){.cb .wrap{grid-template-columns:1fr}}.cb .toolbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 18px;display:flex;position:sticky;top:0}.cb button.primary{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:10px 16px;font-size:14px;font-weight:700}.cb button.ghost{color:var(--brand);border:1px solid var(--brand);cursor:pointer;background:#fff;border-radius:7px;padding:9px 14px}.cb button:disabled{opacity:.5;cursor:default}.cb .hint{color:var(--muted);font-size:12px}.cb .panel{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:16px;padding:16px}.cb .panel h2{color:var(--logo);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--logo);margin-bottom:10px;padding-bottom:6px;font-size:15px}.cb label.fld{color:var(--muted);margin:8px 0 2px;font-size:12px;display:block}.cb input[type=text],.cb input[type=date],.cb input[type=number],.cb textarea,.cb select{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:6px;padding:7px 8px}.cb textarea{resize:vertical;min-height:46px}.cb .row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.cb .checkline{align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.cb .checkline input{width:auto}.cb .contract{border:1px solid var(--line);background:#fff;border-radius:10px;max-width:820px;padding:34px 40px;box-shadow:0 2px 10px #0000000f}.cb .chead{border-bottom:3px solid var(--brand);justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:12px;display:flex}.cb .chead img{height:64px}.cb .chead .co{text-align:right;color:var(--muted);font-size:12px;line-height:1.5}.cb .chead .co b{color:var(--brand);font-size:15px}.cb .ctitle{text-align:center;margin:16px 0 4px}.cb .ctitle h1{color:var(--brand);letter-spacing:.02em;font-size:20px}.cb .ctitle .sub{color:var(--brand2);margin-top:2px;font-size:13.5px;font-weight:700}.cb .ctitle .act{color:var(--muted);margin-top:3px;font-size:11.5px}.cb .ctitle .copy-label{border:1.5px solid var(--brand);letter-spacing:.12em;text-transform:uppercase;color:var(--brand);-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:3px;margin-top:8px;padding:3px 14px;font-size:12px;font-weight:700;display:inline-block}.cb .contract h3{color:var(--logo);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line);margin:18px 0 8px;padding-bottom:4px;font-size:14.5px}.cb .contract h4{color:var(--brand2);margin:10px 0 2px;font-size:13.5px}.cb .contract p{margin:6px 0;font-size:13px;line-height:1.5}.cb .contract ul{margin:4px 0 10px;padding-left:20px}.cb .contract li{margin:2px 0;font-size:12.5px;line-height:1.5}.cb .small{color:var(--muted);font-size:11px}.cb .notice{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fdf6ec;border:1px solid #d9b382;border-radius:8px;margin:12px 0;padding:10px 14px;font-size:12px;line-height:1.5}.cb .notice b{color:#8a5a1b}.cb table.kv{border-collapse:collapse;width:100%;margin:6px 0 10px;font-size:12.5px}.cb table.kv th,.cb table.kv td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 9px}.cb table.kv th{width:38%;color:var(--brand2);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f4f6fa;font-weight:700}.cb table.money{border-collapse:collapse;width:100%;margin:6px 0 10px;font-size:12.5px}.cb table.money th,.cb table.money td{border:1px solid var(--line);text-align:left;padding:6px 9px}.cb table.money thead th{color:var(--brand2);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f4f6fa}.cb table.money td.num,.cb table.money th.num{text-align:right;white-space:nowrap}.cb table.money tfoot td{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f4f6fa;font-weight:700}.cb .blank{color:var(--muted)}.cb .signgrid{grid-template-columns:1fr 1fr;gap:26px;margin-top:12px;display:grid}.cb .signbox{font-size:12.5px;line-height:2.4}.cb .signbox .who{color:var(--brand2);font-weight:700;line-height:1.6}.cb .printfoot{display:none}@media (width<=700px){.cb .wrap{padding:12px}.cb .contract{padding:18px 16px}.cb .chead{flex-wrap:wrap;gap:10px}.cb .chead img{max-width:100%;height:44px}.cb .chead .co{text-align:left}.cb .signgrid{grid-template-columns:1fr;gap:12px}.cb .toolbar{padding:8px 12px}}@media print{@page{size:A4;margin:14mm}:is(html:has(.cb),body:has(.cb)){font-size:12px;background:#fff!important}body:has(.cb){padding:0}body:has(.cb) .header-top{display:none!important}body:has(.cb) .mainnav{display:none!important}body:has(.cb) header{display:none!important}body:has(.cb) .owner-strip{display:none!important}body:has(.cb) main{max-width:none;margin:0;padding:0}.cb .no-print,.no-print{display:none!important}.cb .wrap{max-width:none;padding:0;display:block}.cb .contract{box-shadow:none;border:0;border-radius:0;max-width:none;padding:0}.cb .clause,.cb table.kv,.cb .notice,.cb .signgrid{break-inside:avoid}.cb .contract h3,.cb .contract h4{break-after:avoid}.cb table.money{break-inside:auto}.cb table.money tr{break-inside:avoid}.cb .pagebreak,.cb .second-copy{break-before:page}.cb .printfoot{border-top:1px solid var(--line);text-align:center;color:var(--muted);break-inside:avoid;margin-top:10mm;padding-top:3px;font-size:9px;display:block}}.up-drop{border:2px dashed var(--line);background:var(--paper);text-align:center;cursor:pointer;border-radius:6px;padding:22px 18px;transition:border-color .15s,background .15s;display:block}.up-drop:hover,.up-drop:focus-within{border-color:var(--blue);background:#fff}.up-drop.dragging{border-color:var(--blue);background:var(--blue-wash,#e7f2f8)}.up-drop .big{color:var(--blue-dark);font-size:15px;font-weight:600}.up-drop .small{color:var(--muted);margin-top:4px;font-size:12px}.up-drop input[type=file]{display:none}.up-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.up-actions .btn{flex:auto;min-width:140px}@media (hover:none) and (pointer:coarse){.up-drop{display:none}.up-actions{margin-top:0}}.up-queue{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.up-queue .chip{background:var(--paper);border:1px solid var(--line);border-radius:20px;align-items:center;gap:6px;max-width:100%;padding:4px 6px 4px 10px;font-size:12px;display:flex}.up-queue .chip span{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.up-queue .chip button{color:var(--danger);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:15px;line-height:1}.stage-head{border-bottom:2px solid var(--line);align-items:baseline;gap:10px;margin:22px 0 10px;padding-bottom:6px;display:flex}.stage-head h3{color:var(--blue-dark);text-transform:uppercase;letter-spacing:.04em;margin:0;font-family:Oswald,sans-serif;font-size:14px}.stage-head .count{color:var(--muted);font-size:12px}.ph-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.ph-card{border:1px solid var(--line);background:var(--card);cursor:pointer;text-align:left;border-radius:5px;flex-direction:column;padding:0;display:flex;overflow:hidden}.ph-card:hover{border-color:var(--blue)}.ph-card:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.ph-card .shot{aspect-ratio:4/3;object-fit:cover;background:var(--paper);width:100%;display:block}.ph-card .noshot{aspect-ratio:4/3;background:var(--paper);color:var(--muted);text-align:center;justify-content:center;align-items:center;padding:8px;font-size:11px;display:flex}.ph-card .meta{color:var(--muted);padding:7px 9px;font-size:11.5px}.ph-card .meta .cap{color:var(--ink);margin-bottom:2px;display:block}.job-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.job-card{border:1px solid var(--line);background:var(--card);color:inherit;border-radius:5px;flex-direction:column;gap:8px;padding:14px 16px;text-decoration:none;display:flex}.job-card:hover{border-color:var(--blue)}.job-card .name{color:var(--blue-dark);font-size:14px;font-weight:600}.job-card .addr{color:var(--muted);font-size:12px}.job-card .tally{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.lb{z-index:100;background:#141312ed;flex-direction:column;display:flex;position:fixed;inset:0}.lb-bar{color:#eae7e3;background:#00000059;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;font-size:12.5px;display:flex}.lb-bar .grow{flex:1;min-width:0}.lb-bar .who{color:#b9b4ae}.lb-bar a,.lb-bar button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:4px;padding:7px 12px;font-family:inherit;font-size:12.5px;text-decoration:none}.lb-bar a:hover,.lb-bar button:hover{background:#ffffff38}.lb-bar button.danger{color:#ffb3aa}.lb-stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:10px;display:flex}.lb-stage img{object-fit:contain;max-width:100%;max-height:100%}.lb-nav{color:#fff;cursor:pointer;background:#0006;border:0;border-radius:4px;padding:14px 12px;font-size:26px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lb-nav.prev{left:8px}.lb-nav.next{right:8px}.lb-nav:hover{background:#000000a6}.lb-evidence{color:#9d9791;word-break:break-all;background:#00000059;padding:8px 14px 14px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}@media (width<=560px){.ph-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.lb-bar{font-size:12px}}@media (prefers-reduced-motion:reduce){.up-drop,.ph-card{transition:none}}.pl{--brand:#1f3864;--logo:#006bb6;--line:#d8dee9;--muted:#5b6472;--bg:#eef1f5;color:#1f2733;font-family:Calibri,Segoe UI,Arial,sans-serif}.pl h2,.pl h3{text-transform:none;letter-spacing:normal;margin:0;font-family:inherit}.pl .toolbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 14px;display:flex;position:sticky;top:0}.pl .toolbar .sep{background:var(--line);width:1px;height:26px}.pl button.primary{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:9px 15px;font-size:14px;font-weight:700}.pl button.ghost{color:var(--brand);border:1px solid var(--brand);cursor:pointer;font:inherit;background:#fff;border-radius:7px;padding:8px 13px;font-size:13px}.pl button:disabled{opacity:.5;cursor:default}.pl .hint{color:var(--muted);font-size:12px}.pl-wrap{grid-template-columns:1fr minmax(300px,360px);align-items:start;gap:16px;padding:16px 14px;display:grid}@media (width<=1100px){.pl-wrap{grid-template-columns:1fr}}.pl-canvas{border:1px solid var(--line);touch-action:none;background:#fff;border-radius:8px;position:sticky;top:58px;overflow:hidden}.pl-canvas.drawing{cursor:crosshair}.pl-canvas .plan-svg{width:100%;height:min(72vh,760px);display:block}.plan-svg .dim-text{fill:#1f2733;font-family:Calibri,Segoe UI,Arial,sans-serif;font-size:190px}.plan-svg .dim-text.overall{font-size:230px;font-weight:700}.pl-side{flex-direction:column;gap:14px;display:flex}.pl .panel{border:1px solid var(--line);background:#fff;border-radius:10px;padding:14px 16px}.pl .panel h2{color:var(--logo);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--logo);margin-bottom:10px;padding-bottom:5px;font-size:14px}.pl .panel h3.grp{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 5px;font-size:11px}.pl label.fld{color:var(--muted);margin:8px 0 2px;font-size:12px;display:block}.pl input[type=text],.pl input[type=number],.pl select,.pl textarea{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:6px;padding:6px 8px}.pl textarea{resize:vertical;min-height:48px}.pl .row2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fx-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.fx-btn{text-align:left;border:1px solid var(--line);cursor:pointer;font:inherit;background:#f7f9fc;border-radius:6px;flex-direction:column;gap:1px;padding:7px 9px;display:flex}.fx-btn:hover{border-color:var(--logo);background:#eef4fb}.fx-name{font-size:12.5px;font-weight:600}.fx-size{color:var(--muted);font-size:10.5px}.op-row{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;margin-bottom:10px;padding:10px}.pl .btn.danger{color:#b23a2f;font:inherit;cursor:pointer;background:#fff;border:1px solid #b23a2f;border-radius:6px;padding:6px 11px;font-size:12.5px}.pl .btn.danger.small{padding:4px 9px;font-size:11.5px}.plan-sheet{display:none}@media print{@page{size:A4 landscape;margin:12mm}:is(html:has(.pl),body:has(.pl)){background:#fff!important}body:has(.pl){padding:0}body:has(.pl) .header-top{display:none!important}body:has(.pl) .mainnav{display:none!important}body:has(.pl) header{display:none!important}body:has(.pl) .owner-strip{display:none!important}body:has(.pl) main{max-width:none;margin:0;padding:0}.pl .no-print,.no-print{display:none!important}.pl-wrap{padding:0;display:block}.pl-canvas{display:none}.plan-sheet{color:#1f2733;font-family:Calibri,Segoe UI,Arial,sans-serif;display:block}.ps-drawing{margin:0 auto 6mm}.ps-drawing .plan-svg{width:100%;height:100%;display:block}.ps-notes{border-left:2px solid #d8dee9;margin:0 0 4mm;padding:2mm 3mm;font-size:9pt}.ps-title{break-inside:avoid;border:.4mm solid #1f2733;grid-template-columns:62mm 1fr 46mm;display:grid}.ps-title>div{padding:2.5mm 3mm}.ps-title>div+div{border-left:.3mm solid #1f2733}.ps-co{font-size:8pt;line-height:1.45}.ps-co b{color:#1f3864;font-size:9.5pt}.ps-drawing-title{color:#1f3864;margin-bottom:1.5mm;font-size:12pt;font-weight:700}.ps-title table{border-collapse:collapse;width:100%;font-size:8.5pt}.ps-title th{text-align:left;color:#5b6472;white-space:nowrap;vertical-align:top;width:18mm;padding:.4mm 3mm .4mm 0;font-weight:700}.ps-title td{padding:.4mm 0}.ps-meta th{width:12mm}.ps-disclaimer{color:#5b6472;margin:2mm 0 0;font-size:7.5pt}}.pl .tq{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}.pl .tq-order{align-items:baseline;gap:7px;display:flex}.pl .tq-count{color:var(--brand);font-size:26px;font-weight:700;line-height:1.05}.pl .tq-unit{font-size:13px;font-weight:600}.pl .tq-rows{grid-template-columns:1fr 1fr;gap:0 12px;margin-top:8px;display:grid}.pl .tq-rows>div{border-bottom:1px dotted var(--line);justify-content:space-between;gap:8px;padding:3px 0;font-size:12px;display:flex}.pl .tq-rows span{color:var(--muted)}.pl .tq-note{color:#6b5320;background:#fdf7ec;border-left:3px solid #d79a2b;border-radius:0 5px 5px 0;margin:8px 0 0;padding:6px 8px}@media print{.ps-schedule{break-inside:avoid;border:.4mm solid #1f2733;margin:0 0 4mm;padding:2mm 3mm}.ps-sched-title{color:#1f3864;text-transform:uppercase;letter-spacing:.04em;margin-bottom:1mm;font-size:9pt;font-weight:700}.ps-schedule table{border-collapse:collapse;width:100%;font-size:8pt}.ps-schedule th,.ps-schedule td{text-align:left;vertical-align:top;padding:.5mm 3mm .5mm 0}.ps-schedule thead th{color:#5b6472;white-space:nowrap;border-bottom:.3mm solid #1f2733}.ps-schedule tbody td{border-bottom:.15mm solid #d8dee9}.ps-schedule tbody tr:has(+tr.ps-sched-note) td{border-bottom:0}.ps-schedule th.num,.ps-schedule td.num{text-align:right;white-space:nowrap;padding-right:0}.ps-waste{color:#5b6472;font-size:7pt}.ps-schedule tr.ps-sched-note td{color:#5b6472;border-bottom:.15mm solid #d8dee9;padding:0 0 .8mm;font-size:7.5pt;font-style:italic}.ps-sched-foot{color:#5b6472;margin:1.2mm 0 0;font-size:7.5pt}.ps-top{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:0 6mm;display:flex}.ps-top .ps-drawing{flex:none;margin:0 auto 6mm}.ps-shot{flex:0 auto;min-width:55mm;max-width:95mm;margin:0 0 6mm}.ps-shot img{object-fit:contain;border:.3mm solid #1f2733;width:100%;max-height:70mm;display:block}.ps-shot figcaption{color:#5b6472;margin-top:1mm;font-size:7.5pt}.ps-spec{break-inside:auto}.ps-spec thead{display:table-header-group}.ps-spec tbody tr{break-inside:avoid}.ps-spec th.num,.ps-spec td.num{text-align:right;width:8mm;padding-right:3mm}.ps-supplier{color:#5b6472;font-size:7pt}.ps-spec tr.ps-spec-todo td{color:#5b6472;font-style:italic}}.pl-corners{max-height:320px;margin-top:8px;overflow-y:auto}.pl-stray{background:#fdf6e3;border:1px solid #e3b341;border-left-width:3px;border-radius:4px;margin-top:10px;padding:10px}.pl-std .btn.small{vertical-align:baseline;margin-left:2px;padding:1px 6px;font-size:11px;display:inline}.pl-warn{color:#8a5a00;margin-top:4px}:root{--ink:#302f2d;--ink-soft:#4b4a48;--paper:#f7f6f5;--card:#fff;--line:#dedcdc;--blue:#0282bf;--blue-dark:#0b5587;--grey-mid:#6e6c69;--muted:#888682;--danger:#b23a2f}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,sans-serif}h1,h2,h3{text-transform:uppercase;letter-spacing:.04em;font-family:Oswald,sans-serif}.header-top{border-bottom:1px solid var(--line);background:#fff;justify-content:center;align-items:center;padding:18px 28px;display:flex}.header-top img{width:auto;height:56px;display:block}.mainnav{border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;gap:4px;padding:0 28px;display:flex}.mainnav .navlink{text-transform:uppercase;letter-spacing:.04em;color:var(--grey-mid);border-bottom:3px solid #0000;padding:12px 14px;font-family:Oswald,sans-serif;font-size:13px;text-decoration:none}.mainnav .navlink:hover{color:var(--blue-dark);background:var(--paper)}.mainnav .navlink.current{color:var(--blue-dark);border-bottom-color:var(--blue)}header{background:var(--blue-dark);color:#fff;padding:14px 28px}header p{color:#c7c5c1;letter-spacing:0;margin:0;font-family:Inter,sans-serif;font-size:13px}.owner-strip{background:var(--blue);color:#fff;letter-spacing:.03em;padding:6px 28px;font-size:12px;font-weight:600}main{max-width:1200px;margin:0 auto;padding:24px 20px 60px}.card{background:var(--card);border:1px solid var(--line);border-radius:4px;margin-bottom:18px;padding:18px 20px}.card h2{color:var(--blue-dark);margin:0 0 14px;font-size:16px}.row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.field{flex-direction:column;flex:1;gap:4px;min-width:140px;display:flex}.field label{color:var(--muted);font-size:12px;font-weight:500}input,select,textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:3px;padding:8px 10px;font-family:Inter,sans-serif;font-size:14px}textarea{resize:vertical;min-height:50px}button.btn{border:1px solid var(--blue);background:var(--blue);color:#fff;cursor:pointer;border-radius:3px;padding:9px 16px;font-family:Inter,sans-serif;font-size:13px;font-weight:600}button.btn:hover{background:var(--blue-dark)}button.btn.secondary{color:var(--ink);border:1px solid var(--line);background:#fff}button.btn.secondary:hover{background:#efedeb}button.btn.danger{color:var(--danger);border:1px solid var(--danger);background:#fff;padding:5px 10px;font-size:12px}button.btn.small{padding:5px 10px;font-size:12px}.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.metric{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:14px 16px}.metric .num{color:var(--blue-dark);font-family:Oswald,sans-serif;font-size:24px}.metric .lbl{color:var(--muted);margin-top:2px;font-size:12px}.board{grid-template-columns:repeat(6,1fr);align-items:start;gap:12px;display:grid}.col{background:var(--card);border:1px solid var(--line);border-radius:4px;min-height:120px;padding:10px}.col h3{color:var(--grey-mid);letter-spacing:.03em;justify-content:space-between;align-items:center;margin:0 0 10px;font-size:12px;display:flex}.col h3 .count{background:var(--paper);text-transform:none;letter-spacing:0;border-radius:20px;padding:1px 8px;font-family:Inter,sans-serif;font-weight:600}.lead-card{background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:4px;margin-bottom:8px;padding:10px;font-size:12px}.lead-card:hover{border-color:var(--blue)}.lead-card .lname{margin-bottom:2px;font-size:13px;font-weight:600}.lead-card .lval{color:var(--blue-dark);font-weight:600}.lead-card .lmeta{color:var(--muted);margin-top:4px}.lead-card .stale{color:var(--danger);background:#f7e3e1;border-radius:20px;margin-top:5px;padding:1px 7px;font-size:10px;font-weight:600;display:inline-block}.source-tag{color:var(--blue-dark);background:#dceaf1;border-radius:20px;padding:1px 7px;font-size:10px;font-weight:600;display:inline-block}.empty-col{color:var(--muted);padding:8px 2px;font-size:11px}.modal-bg{z-index:50;background:#302f2d8c;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-bg.open{display:flex}.modal{background:#fff;border-radius:6px;width:100%;max-width:480px;max-height:85vh;padding:22px;overflow-y:auto}.modal h3{color:var(--blue-dark);margin:0 0 14px;font-size:16px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.empty-state{color:var(--muted);text-align:center;padding:20px;font-size:13px}.note{color:var(--muted);margin-top:4px;font-size:12px}.note.error{color:var(--danger)}.stage-pills{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.stage-pill{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:20px;padding:5px 12px;font-size:12px}.stage-pill.current{background:var(--blue);color:#fff;border-color:var(--blue)}.pill{letter-spacing:.02em;border:1px solid var(--line);color:var(--grey-mid);white-space:nowrap;background:#fff;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.pill.draft{background:#f1efee}.pill.sent,.pill.issued{color:var(--blue-dark);background:#e4f2f9;border-color:#a9d4ea}.pill.accepted,.pill.signed{color:#1f6b3a;background:#e6f3ea;border-color:#a8d3b6}.pill.declined{color:var(--danger);background:#fbeceb;border-color:#e6b3ad}.pill.paid{color:#1f6b3a;background:#e6f3ea;border-color:#a8d3b6}.subrow.xero-cost{color:var(--ink-soft);align-items:center;gap:10px;padding:6px 0;font-size:13px}.subrow.xero-cost .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.subrow.xero-cost .num{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}.paperwork-add{background:var(--paper);border:1px solid var(--line);border-radius:4px;margin-bottom:10px;padding:10px 12px}.paperwork-list{flex-direction:column;gap:8px;display:flex}.paperwork-item{border:1px solid var(--line);border-radius:4px;align-items:center;gap:10px;padding:8px 10px;display:flex}.paperwork-item .grow{flex:1;min-width:0;font-size:13px}.paperwork-item .thumb{border:1px solid var(--line);background:#fff;border-radius:3px;flex:0 0 54px;width:54px;height:54px;display:block;overflow:hidden}.paperwork-item .thumb img{object-fit:cover;width:100%;height:100%;display:block}.paperwork-item .filetype{width:100%;height:100%;color:var(--grey-mid);letter-spacing:.04em;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}@media (width<=560px){.paperwork-item{flex-wrap:wrap}.paperwork-item .grow{flex-basis:100%;order:3}}.pill.xero-paid{color:#1f6b3a;background:#e6f3ea;border-color:#a8d3b6}.pill.xero-sent{color:var(--blue-dark);background:#e4f2f9;border-color:#a9d4ea}.pill.xero-error{color:var(--danger);background:#fbeceb;border-color:#e6b3ad}.pill.xero-void{color:var(--grey-mid);background:#f1efee;text-decoration:line-through}.pill.xero-draft,.pill.xero-not-sent{color:var(--grey-mid);background:#fff}.timeclock .tc-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.timeclock .tc-since{color:var(--ink-soft);margin:8px 0 10px;font-size:14px}.timeclock .tc-btn{letter-spacing:.02em;width:100%;min-height:64px;margin-top:4px;font-size:20px}.timeclock .tc-btn.on{background:#2e6b2a;border-color:#2e6b2a}.timeclock .tc-btn.on:hover{background:#265a22}.timeclock .tc-btn.off{background:var(--danger);border-color:var(--danger)}.timeclock .tc-btn.off:hover{filter:brightness(.92)}.timeclock .tc-note{width:100%;margin-top:8px}.timeclock .tc-list{border-top:1px solid var(--line);margin-top:12px}.timeclock .tc-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:7px 0;font-size:13px;display:flex}.timeclock .tc-row .grow{flex:1;min-width:0}.timeclock .tc-row .hrs{white-space:nowrap;font-weight:600}.table-wrap{background:linear-gradient(to right, var(--card) 30%, #fff0) left center / 28px 100% no-repeat, linear-gradient(to left, var(--card) 30%, #fff0) right center / 28px 100% no-repeat, radial-gradient(farthest-side at 0 50%, #302f2d24, #302f2d00) left center / 12px 100% no-repeat, radial-gradient(farthest-side at 100% 50%, #302f2d24, #302f2d00) right center / 12px 100% no-repeat;background-attachment:local,local,scroll,scroll;margin-top:4px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--grey-mid);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-family:Oswald,sans-serif;font-size:11px;font-weight:500}.data-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 10px}.data-table tbody tr:hover{background:var(--paper)}.data-table a{color:var(--blue-dark);font-weight:600;text-decoration:none}.data-table a:hover{text-decoration:underline}.data-table .num{text-align:right;white-space:nowrap}.data-table .actions{justify-content:flex-end;gap:6px;display:flex}.pw-box{display:flex;position:relative}.pw-box input{flex:1;min-width:0;padding-right:40px}.pw-eye{width:38px;color:var(--grey-mid);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:0;right:0}.pw-eye:hover{color:var(--ink)}.pw-eye:focus-visible{outline:2px solid var(--blue-dark);outline-offset:-2px;border-radius:3px}.data-table.rowlink tbody tr{cursor:pointer}.data-table.rowlink tbody tr:hover{background:var(--paper)}.data-table.rowlink tbody tr:focus-visible{outline:2px solid var(--blue-dark);outline-offset:-2px}.job-summary{border-bottom:1px solid var(--line);color:var(--grey-mid);flex-wrap:wrap;align-items:center;gap:8px 16px;margin:-4px 0 14px;padding-bottom:12px;font-size:13px;display:flex}.data-table.pinned th:last-child,.data-table.pinned td:last-child{z-index:1;background:var(--card);box-shadow:inset 1px 0 0 var(--line), inset 0 -1px 0 var(--line);position:sticky;right:0}.data-table.pinned thead th:last-child{z-index:2}.data-table.pinned tbody tr:hover td:last-child{background:var(--paper)}.data-table.pinned td[colspan]:last-child{box-shadow:none;position:static}.data-table .nowrap{white-space:nowrap}.data-table .stars{color:#c8a227;letter-spacing:1px;white-space:nowrap}.status-badge{white-space:nowrap;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.status-quoted{color:var(--grey-mid);background:#eceaea}.status-active{color:var(--blue-dark);background:#dceaf1}.status-complete,.ontime-yes{color:#2e6b2a;background:#dfeede}.ontime-no{color:var(--danger);background:#f7e3e1}.variance-pos{color:var(--danger);font-weight:600}.variance-neg{color:#2e6b2a;font-weight:600}.modal.wide{max-width:720px}h4.sub{text-transform:uppercase;letter-spacing:.04em;color:var(--blue-dark);border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;margin:18px 0 6px;padding-top:12px;font-family:Oswald,sans-serif;font-size:12px;display:flex}h4.sub .sub-count{text-transform:none;letter-spacing:0;color:var(--muted);font-family:Inter,sans-serif;font-size:11px;font-weight:400}.subrow{align-items:center;gap:6px;margin-bottom:6px;display:flex}.subrow input,.subrow select{flex:1;min-width:0}.subrow input.amt{flex:0 0 100px}.subrow input.dt{flex:0 0 145px}.subrow button.btn.danger{flex:none;padding:5px 9px}.checkline{color:var(--ink-soft);align-items:center;gap:6px;margin-top:10px;font-size:12px;display:flex}.checkline.tight{white-space:nowrap;flex:none;margin-top:0}.tabs{gap:4px;display:flex}button.tab{text-transform:uppercase;letter-spacing:.04em;color:var(--grey-mid);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:8px 12px;font-family:Oswald,sans-serif;font-size:13px}button.tab.current{color:var(--blue-dark);border-bottom-color:var(--blue)}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:10px;display:grid}.cal-head{text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0;font-family:Oswald,sans-serif;font-size:11px}.cal-day{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:4px;min-height:92px;padding:5px 6px}.cal-day:hover{border-color:var(--blue)}.cal-day.empty{cursor:default;background:0 0;border:0}.cal-day.today{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.cal-day .daynum{color:var(--muted);margin-bottom:3px;font-size:11px}.cal-entry{color:var(--blue-dark);text-overflow:ellipsis;white-space:nowrap;background:#dceaf1;border-radius:3px;margin-bottom:3px;padding:2px 5px;font-size:11px;text-decoration:none;display:block;overflow:hidden}a.cal-entry:hover{background:var(--blue);color:#fff}.cal-list{margin-top:10px}.cal-list .cl-day{text-align:left;width:100%;font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:4px;margin-bottom:8px;padding:10px 12px;display:block}.cal-list .cl-day:hover{border-color:var(--blue)}.cal-list .cl-day.today{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.cal-list .cl-date{text-align:left;text-transform:uppercase;letter-spacing:.04em;width:100%;color:var(--blue);cursor:pointer;background:0 0;border:0;margin-bottom:6px;padding:0;font-family:Oswald,sans-serif;font-size:12px;display:block}.cal-list .cl-date:hover{text-decoration:underline}.cal-list .cl-job{border-top:1px solid var(--line);color:inherit;margin-top:8px;padding-top:8px;font-size:13px;text-decoration:none;display:block}.cal-list a.cl-job.tappable{cursor:pointer;padding-right:18px;position:relative}.cal-list a.cl-job.tappable:after{content:"›";color:var(--blue);font-size:18px;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.cal-list a.cl-job.tappable:hover .cl-title{color:var(--blue-dark);text-decoration:underline}.cal-list .cl-job:first-of-type{border-top:0;margin-top:0;padding-top:0}.cal-list .cl-title{font-weight:600}.cal-list .cl-sub{color:var(--muted);margin-top:2px;font-size:12px}.daycard{background:var(--paper);border:1px solid var(--line);border-radius:4px;margin-bottom:8px;padding:10px;font-size:13px}.daycard-open{color:inherit;text-decoration:none;display:block}.daycard-open:hover strong{color:var(--blue-dark);text-decoration:underline}.daycard-open .go{color:var(--blue);font-size:16px}.daycard-open .note.block{margin-top:2px;display:block}.mat-wrap{margin-top:4px}.matname{flex:1;font-size:13px}.matname.done{color:var(--muted);text-decoration:line-through}.chiplist{flex-wrap:wrap;gap:6px;display:flex}.chipbox{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;display:inline-flex}.tag{border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.tag.employee{color:var(--blue-dark);background:#dceaf1}.tag.sub{color:var(--grey-mid);background:#eceaea}.tag.team{color:#2e6b2a;background:#dfeede}.tag.job{color:#8a5a12;background:#f4ead9}.alert{border:1px solid var(--line);background:var(--card);border-left-width:4px;border-radius:4px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;font-size:13px;display:flex}.alert.action{border-left-color:var(--blue);background:#f2f8fb}.alert.warn{background:#fdf7ec;border-left-color:#c8891f}.alert.info{border-left-color:var(--grey-mid)}.alert.good{background:#f3f8f2;border-left-color:#2e6b2a}.alert-actions{align-items:center;gap:10px;margin-top:6px;display:flex}.alert a{color:var(--blue-dark);font-weight:600;text-decoration:none}.alert a:hover{text-decoration:underline}.job{border-bottom:1px solid var(--line);padding:8px 0;font-size:13px}.job:last-child{border-bottom:0}.job .jdate{text-transform:uppercase;color:var(--blue);letter-spacing:.04em;font-family:Oswald,sans-serif;font-size:11px}.job .jtitle{font-weight:600}.job .jsub{color:var(--muted);margin-top:2px;font-size:12px}.cf-bar{background:var(--paper);border:1px solid var(--line);border-radius:4px;margin:10px 0;padding:10px 12px;font-size:13px}.cf-table td{vertical-align:top}.cf-thisweek{background:#f2f8fb}.cf-week{white-space:nowrap;font-weight:600}.cf-detail{color:var(--muted);margin-top:3px;font-size:11px;font-weight:400}.cf-pos{color:#2e6b2a;font-weight:600}.cf-neg{color:var(--danger);font-weight:600}.cf-muted{color:var(--muted);font-weight:400}@media (width<=900px){.board{grid-template-columns:repeat(2,1fr)}.cal-grid{font-size:11px}.cal-day{min-height:64px}}@media (width<=700px){main{padding:16px 12px 48px}.card{padding:14px}button.btn,a.btn{min-height:44px;padding:11px 16px}button.btn.small,button.btn.danger{min-height:44px;padding:10px 14px;font-size:13px}button.tab{min-height:44px;padding:11px 14px}.stage-pill{min-height:40px;padding:9px 14px}.chipbox{min-height:40px;padding:9px 13px}.mainnav .navlink{padding:14px 12px}.data-table .actions{gap:8px}.cal-list .cl-date{margin-bottom:2px;padding:8px 0}.cal-list a.cl-job.tappable{padding-top:12px;padding-bottom:8px}.data-table.pinned th:last-child,.data-table.pinned td:last-child{padding-left:6px;padding-right:8px}input,select,textarea{padding:10px 12px;font-size:16px}.modal-bg{align-items:flex-end;padding:0}.modal,.modal.wide{border-radius:8px 8px 0 0;max-width:none;max-height:92vh;padding:18px 16px 22px}.modal-actions{background:#fff;padding-top:10px;position:sticky;bottom:0}.field{min-width:100%}.subrow{flex-wrap:wrap}.subrow input.amt,.subrow input.dt{flex:120px}}@media (width<=480px){.board{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}}.auth-page{background:var(--paper);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 20px 60px;display:flex}.auth-checking{color:var(--muted);font-size:13px}.auth-logo{margin-bottom:22px}.auth-logo img{width:auto;height:56px;display:block}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:4px;width:100%;max-width:420px;padding:26px 26px 22px}.auth-card.wide{max-width:560px}.auth-card h1{color:var(--blue-dark);margin:0 0 4px;font-size:18px}.auth-card .lede{color:var(--ink-soft);margin:0 0 18px;font-size:13px;line-height:1.5}.auth-card .field{min-width:0;margin-bottom:14px}.auth-card .field input{width:100%}.auth-card button.btn{width:100%;padding:11px 16px;font-size:14px}.auth-card button.btn+button.btn{margin-top:8px}.auth-msg{border-radius:3px;margin-bottom:14px;padding:9px 12px;font-size:13px;line-height:1.45}.auth-msg.bad{color:var(--danger);background:#fbeceb;border:1px solid #e6b3ad}.auth-msg.good{color:#1f6b3a;background:#e6f3ea;border:1px solid #a8d3b6}.auth-msg.info{color:var(--blue-dark);background:#f2f8fb;border:1px solid #a9d4ea}.auth-alt{border-top:1px solid var(--line);color:var(--muted);text-align:center;margin-top:16px;padding-top:14px;font-size:12px}.auth-alt button{color:var(--blue-dark);cursor:pointer;background:0 0;border:0;padding:0;font-family:Inter,sans-serif;font-size:12px;font-weight:600}.auth-alt button:hover{text-decoration:underline}input.code-input{letter-spacing:.35em;text-align:center;width:100%;padding:10px;font-family:Oswald,sans-serif;font-size:26px}.qr-block{text-align:center;margin:4px 0 16px}.qr-block img{border:1px solid var(--line);background:#fff;border-radius:4px;width:200px;height:200px;padding:8px}.secret-line{background:var(--paper);border:1px solid var(--line);word-break:break-all;text-align:center;border-radius:3px;margin-top:10px;padding:8px 10px;font-family:Courier New,monospace;font-size:13px}.recovery-grid{background:var(--paper);border:1px solid var(--line);border-radius:3px;grid-template-columns:repeat(2,1fr);gap:6px 14px;margin:12px 0;padding:14px 16px;font-family:Courier New,monospace;font-size:14px;display:grid}.perm-grid{margin-top:4px}.perm-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:8px 0;display:flex}.perm-row:last-child{border-bottom:0}.perm-row .perm-label{flex:1;min-width:0}.perm-row .perm-label b{font-size:13px;font-weight:600;display:block}.perm-row .perm-label span{color:var(--muted);font-size:11px}.perm-row select{flex:0 0 130px}.user-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.whoami{color:var(--grey-mid);align-items:center;gap:14px;margin-left:auto;font-size:12px;display:flex}.whoami b{color:var(--ink);font-weight:600}.whoami a,.whoami button{color:var(--blue-dark);cursor:pointer;background:0 0;border:0;padding:0;font-family:Inter,sans-serif;font-size:12px;font-weight:600;text-decoration:none}.whoami a:hover,.whoami button:hover{text-decoration:underline}.header-top.with-user{justify-content:space-between;padding-right:28px}.header-top.with-user .spacer{flex:1 1 0;min-width:0}.header-top.with-user .whoami{flex:1 1 0;justify-content:flex-end;min-width:0}@media (width<=700px){.recovery-grid{grid-template-columns:1fr}.header-top.with-user{flex-wrap:wrap;justify-content:center;gap:8px;padding:14px 16px 12px}.header-top.with-user .spacer{display:none}.header-top.with-user img{height:44px;margin:0}.header-top.with-user .whoami{flex-wrap:wrap;flex:100%;justify-content:center;gap:16px;margin:0}.whoami a,.whoami button{align-items:center;min-height:40px;display:inline-flex}}@media print{.auth-card{border:0}.auth-page{min-height:0;padding:0}.no-print{display:none!important}}.qb{--brand:#1f3864;--brand2:#2e5496;--logo:#006bb6;--line:#d8dee9;--muted:#5b6472;--bg:#eef1f5;color:#1f2733;font-family:Calibri,Segoe UI,Arial,sans-serif;font-size:15px}.qb h1,.qb h2,.qb h3{text-transform:none;letter-spacing:normal;margin:0;font-family:inherit}.qb .wrap{grid-template-columns:minmax(360px,440px) 1fr;align-items:start;gap:20px;max-width:1180px;margin:0 auto;padding:18px;display:grid}@media (width<=980px){.qb .wrap{grid-template-columns:1fr}}.qb .panel{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:16px;padding:16px}.qb .panel h2{color:var(--logo);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--logo);margin-bottom:10px;padding-bottom:6px;font-size:15px}.qb label.fld{color:var(--muted);margin:8px 0 2px;font-size:12px;display:block}.qb input[type=text],.qb input[type=date],.qb input[type=number],.qb textarea,.qb select{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:6px;padding:7px 8px}.qb textarea{resize:vertical;min-height:46px}.qb .row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.qb .row3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.qb .chips{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.qb .chip{border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:6px;padding:5px 11px;font-size:13px;display:inline-flex}.qb .chip input{width:auto;margin:0}.qb .tradegrp{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;overflow:hidden}.qb .tradehd{color:var(--brand2);background:#f4f6fa;justify-content:space-between;padding:8px 10px;font-weight:700;display:flex}.qb .tradehd .cnt{color:var(--muted);font-size:12px;font-weight:400}.qb .line{border-top:1px solid #eef1f5;align-items:flex-start;gap:8px;padding:7px 10px;display:flex}.qb .line input[type=checkbox]{width:auto;margin-top:3px}.qb .line .txt{flex:1;font-size:13.5px;line-height:1.35}.qb .line .badge{color:#fff;background:var(--muted);white-space:nowrap;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:10px}.qb .line .badge.slab{background:#b5651d}.qb .line .badge.sub{background:#2e7d32}.qb .line .badge.opt{background:#7a5cc0}.qb .customline{background:#f7f9fc}.qb .custtext{min-width:0;font:inherit;color:#1f2733;border:1px dashed #b9c4d6;border-radius:6px;flex:1;padding:5px 7px}.qb .custdel{border:1px solid var(--line);color:#a33;cursor:pointer;background:#fff;border-radius:6px;width:28px;min-width:28px;font-size:16px;line-height:1}.qb .custadd{color:var(--brand);cursor:pointer;font:inherit;background:#eef2f8;border:1px dashed #9fb2ce;border-radius:6px;padding:5px 12px;font-size:12.5px;font-weight:700}.qb .custadd:hover{background:#e2e9f4}.qb .pcrow,.qb .exrow{border-top:1px solid #eef1f5;align-items:center;gap:8px;padding:6px 0;display:flex}.qb .pcrow input[type=checkbox],.qb .exrow input[type=checkbox]{width:auto}.qb .pcrow .amt{width:130px;margin-left:auto}.qb .toolbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 18px;display:flex;position:sticky;top:0}.qb button.primary{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:10px 16px;font-size:14px;font-weight:700}.qb button.ghost{color:var(--brand);border:1px solid var(--brand);cursor:pointer;background:#fff;border-radius:7px;padding:9px 14px}.qb .hint{color:var(--muted);font-size:12px}.qb .quote{border:1px solid var(--line);background:#fff;border-radius:10px;max-width:820px;padding:34px 40px;box-shadow:0 2px 10px #0000000f}.qb .qhead{border-bottom:3px solid var(--brand);justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:12px;display:flex}.qb .qhead img{height:64px}.qb .qhead .co{text-align:right;color:var(--muted);font-size:12px;line-height:1.5}.qb .qhead .co b{color:var(--brand);font-size:15px}.qb .qmeta{justify-content:space-between;margin:14px 0;font-size:13px;display:flex}.qb .qmeta .r{text-align:right}.qb .quote h3{color:var(--logo);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line);margin:18px 0 8px;padding-bottom:4px;font-size:15px}.qb .quote p{margin:6px 0;font-size:13.5px;line-height:1.5}.qb .quote ul{margin:4px 0 10px;padding-left:20px}.qb .quote li{margin:2px 0;font-size:13px;line-height:1.5}.qb .tradeblock{margin:10px 0}.qb .tradeblock h4{color:var(--brand2);margin:8px 0 2px;font-size:13.5px}.qb .priceline{border:1px solid var(--line);background:#f4f6fa;border-radius:8px;margin:8px 0;padding:10px 14px;font-size:14px}.qb .total{background:var(--logo);color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:8px;justify-content:space-between;margin-top:14px;padding:12px 16px;font-size:17px;font-weight:700;display:flex}.qb .excl li{color:#7a2b2b}.qb .printfoot{display:none}.qb .small{color:var(--muted);font-size:11px}@media (width<=700px){.qb .wrap{padding:12px}.qb .quote{padding:18px 16px}.qb .qhead{flex-wrap:wrap;gap:10px}.qb .qhead img{max-width:100%;height:44px}.qb .qhead .co{text-align:left}.qb .qmeta{flex-direction:column;gap:8px}.qb .qmeta .r{text-align:left}.qb .row3{grid-template-columns:1fr 1fr}.qb .pcrow .amt{width:100px}.qb .toolbar{flex-wrap:wrap;padding:8px 12px}}.qb .qroom{text-align:center;margin:14px 0 4px}.qb .qroom img{border:1px solid var(--line);border-radius:8px;width:100%;max-width:100%;height:auto;display:block}.qb .qroom .small{margin-top:4px}.qb table.spec{border-collapse:collapse;width:100%;margin:4px 0 8px;font-size:12px}.qb table.spec th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--brand2);border-bottom:1px solid var(--brand2);padding:4px 6px;font-size:11px}.qb table.spec td{border-bottom:1px solid var(--line);vertical-align:top;padding:4px 6px;line-height:1.4}.qb table.spec .q{text-align:right;white-space:nowrap;width:42px}.qb table.spec tr.tbs td{color:var(--muted);font-style:italic}@media print{@page{size:A4;margin:14mm}:is(html:has(.qb),body:has(.qb)){font-size:12px;background:#fff!important}body:has(.qb){padding:0}body:has(.qb) .header-top{display:none!important}body:has(.qb) .mainnav{display:none!important}body:has(.qb) header{display:none!important}body:has(.qb) .owner-strip{display:none!important}body:has(.qb) main{max-width:none;margin:0;padding:0}.qb .no-print,.no-print{display:none!important}.qb .wrap{max-width:none;padding:0;display:block}.qb .quote{box-shadow:none;border:0;border-radius:0;max-width:none;padding:0}.qb .tradeblock,.qb .priceline,.qb .total,.qb .qroom{break-inside:avoid}.qb .qroom img{width:auto;max-height:95mm;margin:0 auto}.qb .specblock{break-inside:auto}.qb table.spec thead{display:table-header-group}.qb table.spec tr{break-inside:avoid}.qb .quote h3{break-after:avoid}.qb .printfoot{border-top:1px solid var(--line);text-align:center;color:var(--muted);break-inside:avoid;margin-top:10mm;padding-top:3px;font-size:9px;display:block}}.qb table.spec th.n,.qb table.spec td.n{text-align:right;white-space:nowrap}.qb table.spec .waste{color:var(--muted);font-size:11px}.qb table.spec tr.tnote td{color:var(--muted);padding-top:0;font-size:11px;font-style:italic}
