@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/inter-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/inter-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/inter-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/inter-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/fonts/inter-latin-800-normal.woff2)format("woff2")}*{box-sizing:border-box}body{color:#1b2733;background:#f4f6f8;margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:14px}#root{min-height:100vh}.mobile-section{display:none}.pm-checklist{max-width:850px}.checklist-progress{gap:8px;margin:20px 0;display:grid}.checklist-progress progress{accent-color:#16468e;width:100%;height:12px}.checklist-phase{margin-bottom:28px}.checklist-task{background:#fff;border:1px solid #c2d1e2;border-radius:12px;margin:10px 0;padding:16px}.checklist-task.is-complete{border-left:4px solid #268147}.checklist-task-heading{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.checklist-task-heading strong{flex:230px;font-size:16px}.pm-checklist button,.photo-dialog button,.photo-picker{touch-action:manipulation;min-height:46px;padding:10px 16px}.photo-actions{flex-wrap:wrap;gap:10px;display:flex}.photo-dialog{color:#0d1b2a;border:1px solid #8db7e1;border-radius:16px;width:min(640px,100% - 24px);max-height:90dvh;padding:24px;overflow-y:auto}.photo-dialog::backdrop{background:#0a1628bd}.photo-dialog p{overflow-wrap:anywhere}.photo-picker{color:#fff;cursor:pointer;background:#16468e;border:1px solid #16468e;border-radius:6px;align-items:center;display:inline-flex;position:relative}.photo-picker.secondary{color:#16468e;background:#f5f8fc}.photo-picker input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.photo-picker:focus-within{outline-offset:3px;outline:3px solid #8db7e1}.photo-picker.disabled{opacity:.55;cursor:default}.checklist-gallery{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:16px 0;display:grid}.checklist-gallery figure{min-width:0;margin:0}.checklist-gallery img{aspect-ratio:4/3;object-fit:cover;border-radius:8px;width:100%;max-height:240px}.checklist-gallery figcaption{margin:4px 0}.saved-photos{border-top:1px solid #c2d1e2;margin-top:18px;padding-top:12px}@media (width<=640px){.layout header{gap:10px;padding:12px}.layout header nav{display:none}.mobile-section{flex:1 0 100%;order:2;align-items:center;gap:12px;display:flex}.mobile-section select{width:100%;min-width:0;min-height:46px;font-size:16px}.layout header .ver,.layout header .savenow{display:none}.layout main{padding:16px 12px}.pm-checklist .toolbar label{gap:6px;width:100%;display:grid}.pm-checklist select{width:100%;min-width:0;min-height:46px;font-size:16px}.photo-dialog{padding:18px}.photo-actions>button,.photo-actions>label{flex:auto}}.center-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border:1px solid #d7dee5;border-radius:10px;flex-direction:column;gap:12px;width:340px;padding:32px;display:flex}.login-card h1{color:#14577f;margin:0}.login-card .sub{color:#5b6b7a;margin:0 0 8px;font-size:12px}.layout header{color:#fff;background:#14577f;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;display:flex}.brand{font-size:16px;font-weight:700}.brand-sub{opacity:.7;font-size:12px;font-weight:400}.layout nav{flex-wrap:wrap;gap:4px;display:flex}.layout nav button{color:#cfe3f0;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px}.layout nav button.active{color:#14577f;background:#fff;font-weight:600}.layout nav button:disabled{color:#6d94ac;cursor:not-allowed}.ver{opacity:.85;margin-left:auto;font-size:12px}main{max-width:1200px;padding:20px}h2{color:#14577f;margin:0 0 4px}h3{color:#2a3f52;margin:20px 0 6px}.hint{color:#5b6b7a;margin:0 0 14px;font-size:12.5px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.status{color:#2e7d32;min-width:60px;font-size:12px}table.grid{border-collapse:collapse;background:#fff;width:100%}table.grid.narrow{width:auto;min-width:480px}table.grid th,table.grid td{text-align:left;border:1px solid #dde4ea;padding:5px 8px}table.grid th{color:#2a3f52;background:#eaf1f6;font-size:12px}td.rowhead{background:#f7fafc;font-weight:600}tr.inactive{opacity:.45}th.draghead{width:24px;padding:0}td.draghandle{text-align:center;color:#9aa9b6;cursor:grab;-webkit-user-select:none;user-select:none;width:24px;padding:0;line-height:1}td.draghandle:active{cursor:grabbing}tr:hover>td.draghandle{color:#14577f}tr.row-dragging{opacity:.4}tr.row-over>td{border-top:2px solid #14577f}td.numcell{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}hr.sectionrule{border:0;border-top:1px solid #dde4ea;margin:28px 0 18px}tr.linesrow>td{background:#f4f8fb;padding:10px 14px 14px 34px}tr.linesrow table.grid{background:#fff}.lineshead{color:#2a3f52;margin-bottom:6px;font-size:12px;display:block}.optnote{color:#7b8a99;margin-top:2px;font-size:11.5px;font-weight:400;display:block}input.optname{width:100%;font-weight:600}.optkey{color:#9aa9b6;margin-top:2px;font-size:10.5px;font-weight:400;display:inline-block}.optplace{max-width:220px;margin-top:4px;font-size:11px;display:block}input.optnoteinput{color:#7b8a99;background:#fbfcfd;border-color:#eef2f5;width:100%;margin-top:3px;font-size:11.5px;font-weight:400}.activetick{color:#7b8a99;align-items:center;gap:3px;font-size:11px;display:inline-flex}.scaledmin{color:var(--muted,#667);align-items:center;gap:4px;margin-top:4px;font-size:11px;display:flex}.activetick input{margin:0}.computed{color:#14577f;font-variant-numeric:tabular-nums;background:#eef3f7;border:1px solid #dde4ea;border-radius:5px;min-width:78px;padding:4px 7px;font-weight:600;display:inline-block}button.savenow{color:#7b8a99;cursor:default;background:#eef3f7;border-color:#c6d0d9;padding:4px 10px;font-size:12px}button.savenow:disabled{opacity:1}button.savenow.dirty{color:#3a2a00;cursor:pointer;background:#f5a623;border-color:#d98e12;font-weight:600}button.savenow.dirty:hover{background:#e09a1c}tr.addrow td{background:#fbfcfd}.dec-wrap{align-items:center;gap:2px;display:inline-flex}.dec-prefix{color:#8395a5;font-size:12px}.dec-wrap input{width:90px}input,select{font:inherit;background:#fff;border:1px solid #c6d0d9;border-radius:5px;padding:5px 7px}input:focus,select:focus{border-color:#6fb3d8;outline:2px solid #6fb3d8}button{color:#fff;font:inherit;cursor:pointer;background:#14577f;border:1px solid #14577f;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){background:#0f4463}button:disabled{opacity:.5;cursor:not-allowed}button.danger{background:#b3372f;border-color:#b3372f}button.sm{padding:2px 7px;font-size:12px}button.linklike{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:underline}.login-card button.linklike{color:#14577f}.err{color:#b3372f;margin:8px 0 0;font-size:13px}.asm{margin-bottom:8px}.asm-head{text-align:left;color:#1b2733;background:#fff;border:1px solid #d7dee5;align-items:center;gap:10px;width:100%;display:flex}.asm-head code{color:#7b8a99;font-size:11px}.asm-head .count{color:#7b8a99;margin-left:auto;font-size:12px}.tag{color:#2a3f52;background:#e5ecf2;border-radius:4px;margin-right:4px;padding:1px 6px;font-size:11px;display:inline-block}.tag.ok{color:#2e7d32;background:#dcefdd}.tag.warn{color:#a8620a;background:#fdeeda}.setup-grid{grid-template-columns:380px 1fr;align-items:start;gap:32px;display:grid}.setup-field{margin-bottom:12px}.setup-field label{color:#2a3f52;margin-bottom:3px;font-size:12px;font-weight:600;display:block}.setup-field input{box-sizing:border-box;width:100%}.letterhead-preview{background:#fff;border:1px solid #d7dee5;border-radius:8px;padding:28px;font-family:Inter,Segoe UI,system-ui,sans-serif}.lh-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.lh-logo{object-fit:contain;max-width:260px;max-height:72px}.lh-wordmark{color:#16468e;font-size:24px;font-weight:700}.lh-contact{text-align:right;color:#5a7a9a;font-size:12px}.lh-tagline{color:#16468e;margin-top:6px;font-size:12px;font-style:italic}.lh-rule{border:none;border-top:2px solid #16468e;margin:12px 0}.lh-body{color:#8395a5;font-size:13px}.lead-detail{background:#fff;border:1px solid #d7dee5;border-top:none;padding:12px}.doc-wrap{max-width:820px}.doc{color:#0d1b2a;background:#fff;border:1px solid #d7dee5;padding:48px 56px;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:13.5px;line-height:1.55}.doc-letterhead{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.doc-logo{object-fit:contain;max-width:300px;max-height:84px}.doc-wordmark{color:#16468e;font-size:30px;font-weight:700}.doc-contact{text-align:right;color:#5a7a9a;font-size:12px}.doc-tagline{color:#16468e;margin-top:4px;font-size:12px;font-style:italic}.doc-rule{border:none;border-top:2.5px solid #16468e;margin:14px 0 20px}.doc-meta{justify-content:space-between;margin-bottom:18px;display:flex}.doc-title{color:#16468e;margin:0 0 8px;font-size:21px}.doc-h2{color:#16468e;margin:26px 0 8px;font-size:15px}.doc-table{border-collapse:collapse;width:100%;margin:10px 0}.doc-table th,.doc-table td{text-align:left;vertical-align:top;border-bottom:1px solid #dde4ea;padding:7px 8px}.doc-table th{color:#2a3f52;background:#f5f8fc;font-size:12px}.doc-table tfoot td{border-top:2px solid #16468e;font-size:15px}.doc-small{color:#33465a;font-size:11.5px}ul.doc-small{padding-left:18px}ul.doc-small li{margin-bottom:5px}.doc-sign{gap:48px;margin-top:48px;font-size:12px;display:flex}.doc-sign>div{flex:1}.doc-signline{border-bottom:1px solid #0d1b2a;height:34px;margin-bottom:6px}.sched-bar{background:#fff;border:1px solid #d7dee5;border-radius:8px;padding:10px 0;overflow-x:auto}.sched-row{align-items:center;height:34px;display:flex}.sched-label{color:#2a3f52;flex-shrink:0;width:210px;padding-left:10px;font-size:12px;font-weight:600}.sched-track{background:repeating-linear-gradient(90deg,#f4f7fa 0 111px,#e8eef3 111px 112px);border-radius:4px;height:26px;position:relative}.sched-block{color:#fff;white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:5px;height:22px;padding:0 6px;font-size:10.5px;line-height:22px;position:absolute;top:2px;overflow:hidden}.sched-block:active{cursor:grabbing}.sched-block.fixed-marker{cursor:not-allowed;background-image:repeating-linear-gradient(45deg,#0000 0 6px,#ffffff59 6px 10px);border:1.5px dashed #fff}.q-checkrow{border-bottom:1px solid #f0f4f7;align-items:center;gap:8px;padding:5px 0;font-size:13.5px;display:flex}.q-checkrow:last-child{border-bottom:none}.q-checkrow label{cursor:pointer;align-items:center;gap:8px;display:flex}.check-done{color:#7b8a99;text-decoration:line-through}.dash-top{flex-wrap:wrap;align-items:center;gap:24px;margin-bottom:16px;display:flex}.dash-counters{gap:14px;display:flex}.dash-counter{background:#fff;border:1px solid #d7dee5;border-radius:8px;padding:8px 14px;font-size:14px}.dash-counter b{color:#14577f;margin-right:4px;font-size:20px}.dash-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;display:grid}.dash-card{background:#fff;border:2px solid #d7dee5;border-radius:12px;flex-direction:column;gap:10px;padding:18px 20px;display:flex}.dash-card.dash-amber{border-color:#e0a33e}.dash-card.dash-red{border-color:#c23a31;box-shadow:0 0 0 2px #c23a3126}.dash-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dash-client{color:#14577f;font-size:22px;font-weight:700}.dash-sub{color:#5b6b7a;font-size:13px}.dash-phasecount{color:#2a3f52;white-space:nowrap;font-size:26px;font-weight:700}.dash-phasecount span{color:#7b8a99;font-size:12px;font-weight:400}.dash .p-bar{border-radius:8px;gap:3px;height:16px;display:flex;overflow:hidden}.dash .p-seg{background:#dce6ee;flex:1}.dash .p-seg.p-complete{background:#4d9e57}.dash .p-seg.p-in_progress{background:#14577f}.dash .p-seg.p-scheduled{background:#8db7e1}.dash .p-seg.p-hold{background:#e0a33e}.dash .p-seg.p-fixed{background-image:repeating-linear-gradient(45deg,#0000 0 4px,#ffffff80 4px 7px)}.dash .p-dot{background:#dce6ee;border-radius:50%;width:12px;height:12px;display:inline-block}.dash .p-dot.p-complete{background:#4d9e57}.dash .p-dot.p-in_progress{background:#14577f}.dash .p-dot.p-scheduled{background:#8db7e1}.dash .p-dot.p-hold{background:#e0a33e}.dash-now{color:#1b2733;align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.dash-stats{color:#2a3f52;flex-wrap:wrap;gap:18px;font-size:14.5px;display:flex}.dash-stats .ok{color:#2e7d32}.dash-stats .amber{color:#a8620a;font-weight:600}.dash-stats .red{color:#c23a31;font-weight:700}.dash-flags{flex-wrap:wrap;gap:8px;display:flex}.dash-flag{border-radius:6px;padding:4px 10px;font-size:13px;font-weight:700}.dash-flag-red{color:#fff;background:#c23a31}.dash-flag-amber{color:#a8620a;background:#fdeeda}@media print{.layout header,.no-print,.err{display:none!important}main{max-width:none;padding:0}body{background:#fff}.doc{border:none;padding:0}}.refbar{background:#fff;border:1px solid #d7dee5;border-radius:8px;padding:10px 14px}.phase-sliders{background:#eef4f9;border:1px solid #d7dee5;border-top:none;flex-wrap:wrap;align-items:center;gap:18px;padding:7px 12px;font-size:12px;display:flex}.phase-sliders-label{color:#2a3f52;font-weight:600}.phase-sliders .regname{color:#5b6b7a;margin-right:4px}.lineprice{color:#5b6b7a;white-space:nowrap;margin-top:2px;font-size:11px}.lineprice b{color:#14577f}.markupcell{color:#a8620a;white-space:nowrap;font-size:12px}.refbar label{color:#2a3f52;align-items:center;gap:5px;font-size:12.5px;display:inline-flex}.slidercell{white-space:nowrap;min-width:130px}.slidercell input[type=range]{vertical-align:middle;accent-color:#14577f;width:85px}.slidercell .pct{color:#2a3f52;margin-left:4px;font-size:11.5px}input.unitlabel{width:46px}p.warn{color:#a8620a;background:#fdeeda;border-radius:6px;padding:8px 12px}.grid-scroll{max-width:100%;overflow-x:auto}.pm-notes{flex-direction:column;gap:4px;padding:4px 0 8px;display:flex}.pm-notes label,.pm-notes-readonly .asm-head b{letter-spacing:.06em;color:#8a5a00;font-size:11px;font-weight:700}.pm-notes textarea{box-sizing:border-box;width:100%;font:inherit;resize:vertical;background:#fffaf0;border:1px dashed #d9b36b;border-radius:6px;padding:6px 8px}.pm-notes-row td{background:#fffdf7}.pm-notes-readonly dl{margin:6px 0 0}.pm-notes-readonly dt{font-weight:600}.pm-notes-readonly dd{white-space:pre-wrap;margin:0 0 8px}button.secondary{color:#16468e;background:#f5f8fc;border:1px solid #c2dcf2}.dash-counter.warn{background:#fffaf0;border-color:#d9b36b}.row-attention td{background:#fffaf0}.est-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:10px;padding:8px 0;display:grid}.est-form label,.est-row{flex-direction:column;gap:4px;font-size:13px;display:flex}.est-form .wide{grid-column:1/-1}.est-form input,.est-form textarea,.est-row input,.est-row textarea{font:inherit;border:1px solid #c9d3dd;border-radius:6px;padding:6px 8px}.est-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.est-side{flex-direction:column;gap:12px;display:flex;position:sticky;top:12px}.est-private{background:#fffdf7;border:1px dashed #d9b36b}.est-private .asm-head b{color:#8a5a00}.est-adj{align-items:center;gap:6px;display:flex}table.grid.est-numbers{width:100%;min-width:0}.est-numbers td:last-child{text-align:right;white-space:nowrap}.est-review{margin-top:16px;padding:12px}.est-review h3{margin:14px 0 6px;font-size:.95rem}.est-review h4{margin:10px 0 4px;font-size:.85rem}.est-review table.grid{display:block;overflow-x:auto}.est-numbers tr.em td{font-weight:700}.est-numbers tr.neg td{color:#b3372f}.est-numbers td.sub{color:#52606d;padding-left:16px}.est-actions{flex-wrap:wrap;gap:8px;display:flex}.est-main .q-root{min-height:0}@media (width<=1000px){.est-layout{grid-template-columns:1fr}.est-side{position:static}}.sched-markers .sched-track{height:22px}.sched-marker{color:#8a5a00;cursor:default;font-size:13px;font-weight:700;position:absolute;top:2px;transform:translate(-50%)}.sched-marker.invoice{color:#2e7d4f}.sched-marker.late{color:#b3372f}.crew-board{background:#fff;border:1px solid #d7dee5;border-radius:8px;padding:8px 0}.crew-lane{border-top:1px solid #eef2f6;align-items:center;min-height:40px;display:flex}.crew-lane.crew-axis{border-top:0;min-height:22px}.crew-lane.crew-hover{background:#eef5fc}.crew-name{flex:none;width:150px;padding:0 10px;font-size:13px;font-weight:600}.crew-track{height:32px;position:relative}.crew-axis .crew-track{height:18px}.crew-tick{color:#52606d;font-size:11px;position:absolute}.crew-block{color:#fff;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;cursor:grab;touch-action:none;border-radius:5px;height:26px;padding:4px 6px;font-size:11px;position:absolute;top:3px;overflow:hidden}.dash-tasks{margin:6px 0 0;padding:0;font-size:13px;list-style:none}.dash-tasks li.red{color:#b3372f;font-weight:600}body.wall-mode .pw-sidebar,body.wall-mode .pool-workflow>header,body.wall-mode .pw-toggle{display:none!important}body.wall-mode .pool-workflow{padding-left:0!important}body.wall-mode .dash{padding:12px 20px;font-size:18px}body.wall-mode .dash-client{font-size:30px}body.wall-mode .dash-sub,body.wall-mode .dash-stats,body.wall-mode .dash-tasks{font-size:18px}body.wall-mode .dash-flag{font-size:16px}body.wall-mode .dash-grid{grid-template-columns:repeat(auto-fill,minmax(520px,1fr))}.msg-center{grid-template-columns:minmax(220px,1fr) 2fr;gap:16px;display:grid}.msg-center>p{grid-column:1/-1}.msg-threads{flex-direction:column;gap:6px;display:flex}.msg-thread{text-align:left;color:#1b2a3a;cursor:pointer;background:#fff;border:1px solid #d6e2f0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.msg-thread b{color:#16468e}.msg-thread:hover{background:#f4f8fc}.msg-thread.on{border-color:#16468e;box-shadow:0 0 0 1px #16468e}.msg-view{flex-direction:column;gap:8px;display:flex}.msg{border-radius:10px;max-width:90%;padding:8px 12px}.msg.client{background:#eef3f9;align-self:flex-start}.msg.us{background:#e3f1e6;align-self:flex-end}.msg-reply{flex-direction:column;gap:6px;display:flex}.msg-reply textarea{box-sizing:border-box;width:100%}@media (width<=800px){.msg-center{grid-template-columns:1fr}}.build-stamp{text-align:right;color:#7d8fa3;padding:6px 10px;font:11px/1.4 system-ui,sans-serif;display:block}.bw-login{background:linear-gradient(160deg,#0a1628,#16468e);padding:24px 16px}.bw-login .pc-login{--pc-ink:#0d1b2a;--pc-muted:#46627e;width:min(420px,100%)}.pw-field{width:100%;display:block;position:relative}.pw-field>input{width:100%;padding-right:44px!important}.pw-field>button.pw-eye{width:42px;min-height:0;box-shadow:none;color:#5b6b7a;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:0;bottom:0;right:0}.pw-field>button.pw-eye:hover:not(:disabled){color:#14577f;box-shadow:none;background:0 0}.pw-field>button.pw-eye:focus-visible{outline-offset:-4px;border-radius:6px;outline:2px solid #6fb3d8}.ts-code{letter-spacing:.35em;text-align:center;font-size:20px!important}.ts-note{color:#5b6b7a;margin:0;font-size:12px}.ts-err{color:#b3372f;margin:0;font-size:13px}.ts-ok{color:#176637;margin:0;font-size:13px}.ts-overlay{z-index:50;background:#0a1628b3;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.ts-panel{color:#1b2733;text-align:left;background:#fff;border-radius:12px;flex-direction:column;gap:12px;width:min(440px,100%);max-height:90vh;padding:24px;display:flex;overflow:auto}.ts-panel h2{color:#14577f;margin:0;font-size:20px}.ts-panel p{margin:0;line-height:1.5}.ts-panel label{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.ts-panel input{width:100%}.ts-qr{background:#fff;border:1px solid #d7dee5;border-radius:8px;width:176px;height:176px;padding:8px}.ts-secret{word-break:break-all;background:#f4f6f8;border-radius:4px;padding:2px 6px;font-family:ui-monospace,monospace}.ts-row{flex-wrap:wrap;gap:8px;display:flex}.ts-link{font:inherit;cursor:pointer;text-decoration:underline;color:#14577f!important;min-height:0!important;box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}.ts-card{flex-direction:column;gap:12px;display:flex}
