:root{color:#16201f;background:#f5f3ee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}.app-shell{background:linear-gradient(#ffffffd1,#f5f3eef5),#f5f3ee;min-height:100vh}.topbar{border-bottom:1px solid #d9d4c8;justify-content:space-between;align-items:center;padding:18px 32px;display:flex}.brand{color:inherit;font-size:18px;font-weight:700;text-decoration:none}.nav-links{gap:18px;display:flex}.nav-links a{color:#46524e;font-size:13px;font-weight:700;text-decoration:none}.workspace{max-width:1040px;margin:0 auto;padding:64px 32px}.eyebrow{color:#59645f;letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:13px;font-weight:800}h1{max-width:820px;margin:0;font-size:clamp(38px,7vw,68px);line-height:1}h2{margin:0;font-size:28px;line-height:1.15}.page-heading{align-items:start;gap:18px;display:grid}.primary-action{color:#fff;cursor:pointer;background:#244c40;border:0;border-radius:6px;justify-content:center;max-width:180px;padding:12px 16px;font-size:14px;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.58}.secondary-action{color:#244c40;cursor:pointer;background:#fff;border:1px solid #afc7be;border-radius:6px;justify-content:center;padding:12px 16px;font-size:14px;font-weight:800;line-height:1;display:inline-flex}.intro{color:#46524e;max-width:720px;font-size:19px;line-height:1.6}.workflow{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:42px;display:grid}.workflow-step{background:#fff;border:1px solid #ded8cc;border-radius:8px;min-height:116px;padding:18px}.ops-page{gap:28px;display:grid}.ops-filters,.inline-form,.chip-row,.hold-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ops-filters{background:#fff;border:1px solid #ded8cc;border-radius:10px;padding:16px}.pour-group{gap:14px;display:grid}.pour-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.pour-card{background:#fff;border:1px solid #d8d4c9;border-left:6px solid #4c8b74;border-radius:10px;gap:12px;padding:18px;display:grid}.pour-card.hung-up,.field-pour.hung-up{background:#fff0ed;border-color:#d88778}.pour-card h3{margin:0}.pour-card dl{gap:8px;margin:0;display:grid}.pour-card dl div{justify-content:space-between;display:flex}.pour-card dt{color:#65706c}.pour-card dd{margin:0;font-weight:700}.overpour{color:#a32920}.hold-badge{color:#fff;background:#a32920;border-radius:20px;width:fit-content;padding:4px 9px;font-size:12px}.ops-table,.note-thread,.alert-list{gap:10px;margin-top:20px;display:grid}.ops-row,.note-thread article,.alert-list article{background:#fff;border:1px solid #ded8cc;border-radius:8px;padding:14px}.ops-row-main{cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:2fr repeat(4,1fr);align-items:center;gap:12px;width:100%;display:grid}.ticket-panel{border-top:1px solid #eee;gap:10px;margin-top:12px;padding-top:12px;display:grid}.summary-strip{gap:24px;font-weight:700;display:flex}.ticket-price-input{width:90px}.ticket-price-cell{color:#244c40;font-weight:700}.ticket-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.expense-list{margin-top:20px}.expense-row-main{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.expense-row-actions{gap:8px;margin-left:auto;display:flex}.expense-row-actions button{padding:6px 10px;font-size:13px}.note-composer{gap:10px;display:grid}.note-composer textarea{min-height:100px}.note-thread article header,.alert-list article{justify-content:space-between;align-items:center;display:flex}.note-thread img,.field-note img{border-radius:6px;max-width:240px;max-height:180px}.field-shell{gap:20px;max-width:520px;margin:0 auto;padding:20px 16px 60px;display:grid;overflow-x:hidden}.field-shell header a{color:#244c40;font-size:20px;font-weight:900;text-decoration:none}.field-shell h1{font-size:36px}.field-shell section{gap:12px;display:grid}.field-search,.field-job-link,.field-pour button,.field-pour select,.field-shell .note-composer button{min-height:48px}.field-search{width:100%;padding:14px;font-size:20px}.field-job-link{color:inherit;background:#fff;border:1px solid #d7d2c7;border-radius:8px;padding:14px;text-decoration:none;display:grid}.field-pour{background:#fff;border:1px solid #d7d2c7;border-radius:8px;gap:10px;padding:14px;display:grid}@media (width<=600px){.topbar{align-items:flex-start;padding:14px 16px}.nav-links{flex-wrap:wrap;gap:10px}.workspace{padding:36px 16px}.ops-row-main{grid-template-columns:1fr}.inline-form>*{width:100%}}.workflow-step span{color:#8b5b2e;margin-bottom:18px;font-size:13px;font-weight:800;display:block}.workflow-step strong{font-size:17px;display:block}.job-list{gap:10px;margin-top:36px;display:grid}.job-row{color:inherit;background:#fff;border:1px solid #ded8cc;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(160px,220px) auto;align-items:center;gap:18px;padding:16px 18px;text-decoration:none;display:grid}.job-row:hover{border-color:#9fb5ad}.job-row div{gap:5px;min-width:0;display:grid}.job-row span,.muted{color:#65706b;font-size:14px}.status-chip{color:#244c40;text-transform:uppercase;background:#dbe8e3;border:1px solid #afc7be;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.status-chip--gray{color:#46524e;background:#e7e5df;border-color:#cfc7b8}.status-chip--blue{color:#1f4a72;background:#dbe6f2;border-color:#a9c2dd}.status-chip--green{color:#244c40;background:#dbe8e3;border-color:#afc7be}.status-chip--neutral{color:#46524e;background:#ece6da;border-color:#ded8cc}.status-chip--faded{color:#a29d90;background:0 0;border-color:#ded8cc}.empty-state{background:#fff;border:1px dashed #c9c1b2;border-radius:8px;padding:28px}.empty-state p{color:#65706b;margin:6px 0 0}.job-form{background:#fff;border:1px solid #ded8cc;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:820px;margin-top:32px;padding:22px;display:grid}.job-form label,.plan-upload label{gap:7px;display:grid}.job-form label:first-child{grid-column:1/-1}.job-form span,.plan-upload span{color:#46524e;font-size:13px;font-weight:800}.job-form input,.job-form select,.plan-upload input{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:42px;padding:9px 10px}.form-submit{cursor:pointer;border:0;grid-column:1/-1}.form-submit:disabled{cursor:not-allowed;opacity:.62}.job-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:820px;margin-top:28px;display:grid}.job-summary div{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:8px;padding:16px;display:grid}.job-summary span{color:#65706b;font-size:13px;font-weight:800}.job-actions{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:16px;padding:18px;display:grid}.job-action-buttons{flex-wrap:wrap;gap:10px;display:flex}.error-message,.success-message,.warning-message,.hint-message{border-radius:6px;max-width:820px;margin:20px 0 0;padding:12px 14px;font-size:14px;font-weight:800}.error-message{color:#8a2c1d;background:#f8ded8}.success-message{color:#244c40;background:#dbe8e3}.inline-confirm{color:#5f3f04;background:#fdf2d0;border:1px solid #ead49a;border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:12px;font-size:14px;font-weight:800;display:flex}.warning-message{color:#92400e;background:#fdf2d0}ul.warning-message{margin:20px 0 0;padding:12px 14px 12px 30px;list-style:outside}.hint-message{color:#65706b;background:0 0;margin:8px 0 0;padding:0;font-weight:600}.generate-report{max-width:820px;margin-top:20px}.badge-warning{color:#92400e;background:#fde68a;border-radius:999px;width:fit-content;margin:2px 0;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.detail-section{max-width:820px;margin-top:44px}.section-heading{justify-content:space-between;align-items:end;display:flex}.assembly-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end}.library-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px;display:grid}.library-summary div{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:8px;padding:16px;display:grid}.library-summary span{color:#65706b;text-transform:uppercase;font-size:13px;font-weight:800}.library-layout{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start;gap:24px;margin-top:32px;display:grid}.library-forms{gap:18px;display:grid}.assembly-form{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:18px;padding:22px;display:grid}.assembly-form label{gap:7px;display:grid}.assembly-form label span{color:#46524e;font-size:13px;font-weight:800}.assembly-form input,.assembly-form select,.assembly-form textarea{color:#16201f;font:inherit;resize:vertical;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:42px;padding:9px 10px}.form-button-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.form-button-row .primary-action,.form-button-row .secondary-action{width:100%;max-width:none}.assembly-item-fields{border-top:1px solid #ded8cc;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px;display:grid}.assembly-item-fields.compact{border-top:0;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:0}.assembly-item-fields label:nth-child(2),.assembly-item-fields label:nth-child(4){grid-column:1/-1}.assembly-item-fields.compact label:nth-child(2),.assembly-item-fields.compact label:nth-child(4){grid-column:auto}.assembly-list{gap:14px;display:grid}.assembly-card{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:14px;padding:18px;display:grid}.assembly-card header{justify-content:space-between;align-items:start;gap:14px;display:flex}.assembly-card header div{gap:5px;min-width:0;display:grid}.assembly-card header .assembly-card-header-actions{flex-direction:column;flex:none;align-items:end;gap:8px;display:flex}.assembly-card header span,.assembly-card p{color:#65706b;font-size:14px}.assembly-card p{margin:0}.assembly-code-row{grid-template-columns:minmax(0,1fr) minmax(180px,260px) auto;align-items:end;gap:10px;display:grid}.assembly-code-row>span{color:#65706b;font-size:13px;font-weight:800}.assembly-code-row label,.assembly-add-item label,.assembly-item-editor label{gap:6px;display:grid}.assembly-code-row label span,.assembly-add-item label span,.assembly-item-editor label span{color:#46524e;font-size:12px;font-weight:800}.assembly-code-row select,.assembly-add-item input,.assembly-add-item select,.assembly-item-editor input,.assembly-item-editor select{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:38px;padding:8px 9px}.assembly-items{border:1px solid #ded8cc;border-radius:8px;overflow-x:auto}.assembly-item-row{grid-template-columns:minmax(180px,1fr) 110px 90px minmax(120px,1fr) 60px 90px 70px 90px 70px 80px;gap:10px;min-width:1140px;padding:10px 12px;display:grid}.assembly-item-row+.assembly-item-row{border-top:1px solid #ece6da}.assembly-item-row span{color:#46524e;font-size:13px}.assembly-item-row .secondary-action,.assembly-item-row .danger-action{padding:7px 9px;font-size:12px}.assembly-add-item,.assembly-item-editor{border:1px solid #ded8cc;border-radius:8px;gap:12px;padding:12px;display:grid}.assembly-add-item .secondary-action,.assembly-item-editor .primary-action{width:100%;max-width:none}.assembly-item-row span:nth-child(n+4){text-align:right}.production-preview{color:#46524e;grid-column:1/-1;margin:0;font-size:12px;font-weight:800}.crew-rate-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin-top:28px;display:grid}.crew-rate-panel,.crew-editor-section,.crew-card{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:16px;padding:18px;display:grid}.crew-editor-section{margin-top:18px}.crew-inline-form,.crew-rate-row,.crew-form{gap:10px;display:grid}.crew-inline-form,.crew-rate-row{grid-template-columns:90px minmax(160px,1fr) 100px 120px;align-items:center}.crew-form{grid-template-columns:repeat(6,minmax(0,1fr)) auto}.crew-form label{gap:6px;display:grid}.crew-form label span{color:#46524e;font-size:12px;font-weight:800}.crew-inline-form input,.crew-rate-row input,.crew-form input,.crew-form select{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:38px;padding:8px 9px}.crew-rate-table,.crew-list{gap:10px;display:grid}.crew-rate-row{border-top:1px solid #ece6da;padding-top:10px}.crew-rate-row.header{color:#244c40;text-transform:uppercase;border-top:0;padding-top:0;font-size:12px;font-weight:800}.crew-rate-row span:nth-child(3){text-align:right}.crew-card header{justify-content:space-between;align-items:center;gap:14px;display:flex}.crew-card header div{gap:5px;display:grid}.crew-card header span,.crew-members span{color:#65706b;font-size:13px}.crew-members{flex-wrap:wrap;gap:8px;display:flex}.crew-members span{border:1px solid #ded8cc;border-radius:6px;padding:7px 9px}.inline-select{gap:6px;min-width:220px;display:grid}.inline-select span{color:#46524e;font-size:12px;font-weight:800}.inline-select select,.alternate-form input,.alternate-form select,.alternate-line-edit input,.alternate-line-edit select,.bid-table select,.bid-create-form input,.bid-create-form select,.proposal-box select{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:38px;padding:8px 9px}.alternate-banner,.bid-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.bid-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.alternate-banner div,.bid-kpis div{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:6px;padding:14px;display:grid}.alternate-banner span,.bid-kpis span{color:#65706b;text-transform:uppercase;font-size:12px;font-weight:800}.alternates-layout,.job-bid-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:18px;margin-top:18px;display:grid}.alternates-panel,.alternate-detail,.bid-table-card,.job-bid-detail{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:14px;padding:16px;display:grid}.alternate-form,.bid-create-form{gap:10px;display:grid}.bid-create-form{grid-template-columns:repeat(6,minmax(0,1fr)) auto;align-items:end;margin-top:18px}.bid-create-form label,.proposal-box label{gap:6px;display:grid}.bid-create-form span,.proposal-box span{color:#46524e;font-size:12px;font-weight:800}.alternate-list,.job-bid-list{gap:10px;display:grid}.alternate-list-row,.job-bid-card{border:1px solid #ded8cc;border-radius:8px;gap:8px;padding:10px;display:grid}.alternate-list-row.selected,.job-bid-card.selected{border-color:#2f6656;box-shadow:inset 3px 0 #2f6656}.alternate-list-row button,.job-bid-card{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;gap:5px;padding:0;display:grid}.alternate-list-row select{border:1px solid #cfc7b8;border-radius:6px;min-height:34px}.alternate-type{color:#fff;border-radius:999px;justify-content:center;width:fit-content;padding:3px 8px;font-size:11px;font-weight:800;display:inline-flex}.alternate-type.add{background:#2f6656}.alternate-type.deduct{background:#9f3f35}.alternate-type.substitution{background:#5c6270}.alternate-line-grid,.bid-table,.jobs-table{border:1px solid #ded8cc;border-radius:8px;overflow-x:auto}.alternate-line-row,.bid-table-row,.jobs-table-row{gap:10px;min-width:820px;padding:10px 12px;display:grid}.alternate-line-row{grid-template-columns:minmax(220px,1fr) 80px 80px 110px 110px 100px}.bid-table-row{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(130px,1fr) 100px 100px 120px 150px}.jobs-table-row{grid-template-columns:110px minmax(160px,1fr) minmax(200px,1fr) 140px 120px}.jobs-table-row:not(.header){cursor:pointer}.jobs-table-row:not(.header):hover{background:#f6f3ea}.alternate-line-row+.alternate-line-row,.bid-table-row+.bid-table-row,.jobs-table-row+.jobs-table-row{border-top:1px solid #ece6da}.alternate-line-row.header,.bid-table-row.header,.jobs-table-row.header{color:#244c40;text-transform:uppercase;background:#dbe8e3;font-size:12px;font-weight:800}.jobs-dashboard-card{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:14px;margin-top:18px;padding:16px;display:grid}.jobs-search{gap:6px;max-width:420px;display:grid}.jobs-search span{color:#46524e;font-size:12px;font-weight:800}.jobs-search input{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:38px;padding:8px 9px}.alternate-line-row span:nth-child(n+2){text-align:right}.alternate-summary-footer,.bid-filter-row,.bid-status-stepper,.proposal-box,.bid-log{flex-wrap:wrap;gap:10px;display:flex}.alternate-summary-footer{justify-content:flex-end}.alternate-summary-footer span,.alternate-summary-footer strong,.bid-log span{color:#46524e;font-size:13px}.filter-chip{color:#46524e;cursor:pointer;font:inherit;background:#fff;border:1px solid #cfc7b8;border-radius:999px;padding:7px 11px;font-size:13px;font-weight:800}.filter-chip.active{color:#fff;background:#2f6656;border-color:#2f6656}.checkbox-label{align-items:center;gap:8px;display:flex}.checkbox-label input{width:auto}.bid-log{border-top:1px solid #ded8cc;padding-top:12px;display:grid}.plan-upload{background:#fff;border:1px solid #ded8cc;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(130px,180px);gap:18px;margin-top:18px;padding:22px;display:grid}.estimate-form{background:#fff;border:1px solid #ded8cc;border-radius:8px;grid-template-columns:minmax(220px,1fr) repeat(5,minmax(110px,140px));gap:18px;margin-top:18px;padding:22px;display:grid}.estimate-form label{gap:7px;display:grid}.estimate-form span{color:#46524e;font-size:13px;font-weight:800}.estimate-form input{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:42px;padding:9px 10px}.estimate-form .form-submit{grid-column:1/-1}.estimate-list{gap:14px;margin-top:18px;display:grid}.estimate-card{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:16px;padding:18px;display:grid}.estimate-card-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.estimate-card-header div{gap:6px;display:grid}.estimate-card-header span{color:#65706b;font-size:14px}.estimate-summary-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.estimate-summary-strip div{border:1px solid #ded8cc;border-radius:8px;gap:5px;padding:10px;display:grid}.estimate-summary-strip span{color:#65706b;text-transform:uppercase;font-size:11px;font-weight:800}.estimate-summary-strip strong{font-size:15px}.estimate-markup-editor{border:1px solid #ded8cc;border-radius:8px;grid-template-columns:repeat(5,minmax(100px,140px)) auto;align-items:end;gap:10px;padding:12px;display:grid}.estimate-markup-editor label{gap:6px;display:grid}.estimate-markup-editor span{color:#46524e;font-size:12px;font-weight:800}.estimate-markup-editor input{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:38px;padding:8px 9px}.estimate-grid{border:1px solid #ded8cc;border-radius:8px;overflow-x:auto}.estimate-grid-row{grid-template-columns:minmax(220px,1fr) 100px 90px 70px 110px 110px 140px;gap:10px;min-width:940px;padding:10px 12px;display:grid}.estimate-grid-row+.estimate-grid-row{border-top:1px solid #ece6da}.estimate-grid-row.header{color:#244c40;text-transform:uppercase;background:#dbe8e3;font-size:13px;font-weight:800}.estimate-grid-row span:not(:first-child){text-align:right}.estimate-grid-edit-row{align-items:center}.estimate-grid-edit-row input{min-width:0;padding:8px 9px}.estimate-grid-edit-row input[type=number]{text-align:right}.budget-total{color:#244c40;font-size:20px}.budget-grid{border:1px solid #ded8cc;border-radius:8px;overflow-x:auto}.budget-grid-row{grid-template-columns:minmax(240px,1fr) 120px 120px 130px;gap:10px;min-width:720px;padding:10px 12px;display:grid}.budget-grid-row.header{color:#244c40;text-transform:uppercase;background:#dbe8e3;font-size:13px;font-weight:800}.budget-grid-row span:nth-child(n+2){text-align:right}.budget-group+.budget-group{border-top:1px solid #ded8cc}.budget-group-row,.budget-footer{background:#fbfaf7;justify-content:space-between;align-items:center;min-width:720px;padding:11px 12px;display:flex}.budget-group-row{color:#244c40;border-top:1px solid #ece6da}.budget-footer{color:#16201f;border-top:2px solid #244c40;font-size:16px}.bva-footer{color:#16201f;background:#fbfaf7;border-top:2px solid #244c40;font-size:15px}.variance-negative{color:#a32920;font-weight:800}.wip-grid-row{grid-template-columns:90px minmax(200px,1fr) 140px 120px 120px 120px 90px}.wip-row{cursor:pointer}.wip-row:hover{background:#fbfaf7}.timecard-group-heading{color:#244c40;text-transform:uppercase;margin:20px 0 6px;font-size:14px;font-weight:800}.estimate-line-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.plan-upload label:nth-child(3),.plan-upload .form-submit{grid-column:1/-1}.plan-set-list{gap:12px;margin-top:18px;display:grid}.plan-set{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:16px;padding:18px;display:grid}.plan-set div:first-child{gap:6px;display:grid}.plan-set span{color:#65706b;font-size:14px}.sheet-links{flex-wrap:wrap;gap:8px;display:flex}.sheet-links a{color:#244c40;border:1px solid #afc7be;border-radius:6px;padding:8px 10px;font-size:13px;font-weight:800;text-decoration:none}.takeoff-workspace{flex-direction:column;height:calc(100vh - 61px);min-height:0;display:flex}.workspace-topbar{background:#fff;border-bottom:1px solid #ded8cc;flex:none;align-items:center;gap:14px;padding:4px 16px;display:flex}.workspace-topbar .back-link{white-space:nowrap;font-size:12px}.workspace-title{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;overflow:hidden}.sheet-picker select{font:inherit;background:#fff;border:1px solid #c9c1b2;border-radius:6px;min-width:140px;padding:4px 8px;font-size:13px;font-weight:700}.workspace-topbar .link-button{color:#244c40;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:2px 4px;font-size:12px;font-weight:700;text-decoration:underline}.workspace-topbar .link-button:disabled{color:#9aa6a1;cursor:default;text-decoration:none}.sheet-rename{align-items:center;gap:6px;display:flex}.sheet-rename input{font:inherit;border:1px solid #c9c1b2;border-radius:6px;padding:4px 8px;font-size:13px}.sheet-rename input:first-of-type{width:80px}.sheet-rename input:nth-of-type(2){width:180px}.sheet-rename .primary-action,.sheet-rename .secondary-action{min-height:28px;padding:4px 10px;font-size:12px}.workspace-topbar .scale-status{background:0 0;border:0;align-items:baseline;gap:6px;min-width:0;margin-left:auto;padding:0;display:flex}.workspace-topbar .scale-status span{font-size:10px}.workspace-topbar .scale-status strong{font-size:13px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sheet-sidebar{background:#fff;border-right:1px solid #ded8cc;flex-direction:column;gap:22px;padding:24px;display:flex}.back-link{color:#244c40;font-size:13px;font-weight:800;text-decoration:none}.sheet-nav{gap:8px;display:grid}.sheet-nav a{color:#46524e;border:1px solid #ded8cc;border-radius:6px;padding:10px 12px;font-size:14px;font-weight:800;text-decoration:none}.sheet-nav a.active,.sheet-nav a:hover{color:#244c40;background:#dbe8e3;border-color:#9fb5ad}.drawing-stage{min-width:0;padding:28px}.drawing-header{justify-content:space-between;align-items:end;gap:18px;margin-bottom:22px;display:flex}.drawing-header h1{font-size:42px}.scale-status{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:5px;min-width:180px;padding:12px 14px;display:grid}.scale-status span{color:#65706b;text-transform:uppercase;font-size:12px;font-weight:800}.pdf-viewer-frame{height:100%;min-height:0;position:relative}.pdf-viewer{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#d8d5ce;border:1px solid #c9c1b2;border-radius:8px;height:100%;min-height:0;padding:24px;position:relative;overflow:hidden}.pdf-zoom-controls .zoom-toggle.active{color:#fff;background:#244c40}.pdf-viewer.panning{cursor:grabbing}.pdf-zoom-controls{z-index:5;background:#fffffff2;border:1px solid #ded8cc;border-radius:8px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 4px 14px #16201f24}.pdf-zoom-controls button{color:#1f2a27;cursor:pointer;background:0 0;border:none;border-radius:5px;min-width:34px;padding:6px 8px;font-size:15px;font-weight:700}.pdf-zoom-controls button:hover:not(:disabled){background:#efece5}.pdf-zoom-controls button:disabled{cursor:default;opacity:.45}.pdf-page-surface{will-change:transform;max-width:100%;margin:0 auto;position:relative}.pdf-viewer.placing{cursor:crosshair}.pdf-page-surface canvas{background:#fff;width:100%;max-width:100%;height:auto;display:block;box-shadow:0 16px 40px #16201f29}.calibration-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.calibration-line{stroke:#d55c2a;stroke-width:4px}.calibration-point{fill:#fff;stroke:#d55c2a;stroke-width:4px}.calibration-overlay text{fill:#8a2c1d;font-size:22px;font-weight:800}.takeoff-overlay{--takeoff-color:#facc15}.takeoff-text-highlight,.takeoff-schedule-highlight{fill:var(--takeoff-color);fill-opacity:.42;stroke:var(--takeoff-color);stroke-opacity:.95;stroke-width:2px}.takeoff-schedule-highlight{fill-opacity:.34;stroke-dasharray:8 5}.takeoff-line-highlight,.takeoff-area-highlight{fill:var(--takeoff-color);fill-opacity:.18;stroke:var(--takeoff-color);stroke-linecap:round;stroke-linejoin:round;stroke-width:5px}.takeoff-count-highlight{fill:var(--takeoff-color);fill-opacity:.38;stroke:#1f2a27;stroke-opacity:.75;stroke-width:2px}.takeoff-overlay.selected .takeoff-line-highlight,.takeoff-overlay.selected .takeoff-area-highlight{fill-opacity:.3;stroke-width:7px}.takeoff-overlay.selected .takeoff-text-highlight,.takeoff-overlay.selected .takeoff-count-highlight{fill-opacity:.55}.takeoff-edit-handle{fill:#fff;stroke:var(--takeoff-color);stroke-width:3px}.takeoff-edit-handle:hover{fill:var(--takeoff-color)}.viewer-status{color:#46524e;z-index:1;background:#fff;border:1px solid #ded8cc;border-radius:6px;margin:0;padding:10px 12px;font-size:14px;font-weight:800;position:absolute;top:24px;left:50%;transform:translate(-50%)}.drawing-layout{grid-template-columns:minmax(0, 1fr) 10px var(--rail-width,360px);flex:auto;grid-template-rows:minmax(0,1fr);gap:0;min-height:0;padding:12px 16px;display:grid}.col-resizer{cursor:col-resize;background:0 0;align-self:stretch;position:relative}.col-resizer:before{content:"";background:#ded8cc;border-radius:2px;transition:background .12s;position:absolute;inset:0 4px}.col-resizer:hover:before{background:#9fb5ad}.row-resizer{cursor:row-resize;flex:none;height:10px;margin:2px 0;position:relative}.row-resizer:before{content:"";background:#ded8cc;border-radius:2px;transition:background .12s;position:absolute;inset:4px 0}.row-resizer:hover:before{background:#9fb5ad}.workspace-rail{flex-direction:column;gap:12px;min-height:0;display:flex}.rail-tools{background:#fff;border:1px solid #ded8cc;border-radius:8px;flex-grow:0;flex-shrink:0;gap:14px;min-height:0;padding:16px;display:grid;overflow-y:auto}.rail-takeoffs{background:#fff;border:1px solid #ded8cc;border-radius:8px;flex-direction:column;flex:auto;min-height:0;padding:12px 14px;display:flex;overflow:hidden}.rail-takeoffs-head{flex:none}.rail-takeoffs .takeoff-list{flex-direction:column;flex:auto;min-height:0;margin-top:8px;display:flex;overflow:hidden}.rail-takeoffs .takeoff-rows{gap:6px;min-height:0;padding-right:4px;overflow-y:auto}.rail-takeoffs .section-heading h2{font-size:16px}.rail-takeoffs .section-heading .eyebrow{font-size:10px}.rail-takeoffs .takeoff-row{border-radius:6px;gap:8px;padding:8px 10px}.rail-takeoffs .takeoff-row div{gap:2px}.rail-takeoffs .takeoff-row span{font-size:11.5px}.rail-takeoffs .takeoff-row-actions{flex-direction:column;gap:4px}.rail-takeoffs .takeoff-row-actions button{min-height:26px;padding:4px 9px;font-size:11px}.rail-takeoffs .review-toggle{margin:0 0 6px}.takeoff-toolbar,.takeoff-properties,.takeoff-list{gap:14px;display:grid}.takeoff-toolbar,.takeoff-properties{border-top:1px solid #ded8cc;padding-top:16px}.mode-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mode-group button{color:#46524e;cursor:pointer;font:inherit;background:#f8f7f4;border:1px solid #ded8cc;border-radius:6px;min-height:38px;padding:8px;font-size:12px;font-weight:800}.mode-group button.active,.mode-group button:hover:not(:disabled){color:#244c40;background:#dbe8e3;border-color:#9fb5ad}.mode-group button:disabled{cursor:not-allowed;opacity:.58}.takeoff-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.takeoff-actions .primary-action{width:100%;max-width:none}.takeoff-actions .primary-action:last-child{grid-column:1/-1}.takeoff-properties label{gap:7px;display:grid}.takeoff-properties label span{color:#46524e;font-size:13px;font-weight:800}.takeoff-properties input,.takeoff-properties select,.takeoff-properties textarea{color:#16201f;font:inherit;resize:vertical;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:40px;padding:8px 10px}.dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.takeoff-list{margin-top:24px}.takeoff-rows{gap:10px;display:grid}.takeoff-row{background:#fff;border:1px solid #ded8cc;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.takeoff-row div{gap:4px;min-width:0;display:grid}.takeoff-row-actions{align-items:center;gap:8px;display:flex}.takeoff-row-actions .primary-action,.takeoff-row-actions .secondary-action,.takeoff-row-actions .danger-action{min-height:38px;padding:9px 11px}.takeoff-row span{color:#65706b;text-transform:capitalize;font-size:13px}.takeoff-row-title{color:#1f2a27;align-items:center;gap:8px;width:fit-content;line-height:1.25;display:inline-flex}.takeoff-row-title span{color:inherit;font-size:inherit;text-transform:none}.takeoff-color-swatch{background:var(--takeoff-color);box-shadow:0 0 0 3px color-mix(in srgb, var(--takeoff-color) 28%, transparent);border:1px solid #1f2a2747;border-radius:4px;flex:none;width:14px;height:14px;display:inline-block}.takeoff-badge.pending{color:#92400e;text-transform:none;background:#fde68a;border-radius:999px;width:fit-content;margin:2px 0;padding:2px 8px;font-size:12px;display:inline-block}.auto-takeoff-control{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.review-toggle{color:#4e5a55;align-items:center;gap:8px;margin:18px 0 10px;font-size:13px;display:inline-flex}.takeoff-edit-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.takeoff-edit-actions .primary-action,.takeoff-edit-actions .secondary-action{width:100%;max-width:none}.danger-action{color:#8a2c1d;cursor:pointer;font:inherit;background:#fff;border:1px solid #e2afa2;border-radius:6px;padding:9px 11px;font-size:13px;font-weight:800}.danger-action:hover{background:#f8ded8}.calibration-panel{gap:14px;display:grid}.calibration-panel label{gap:7px;display:grid}.calibration-panel label span{color:#46524e;font-size:13px;font-weight:800}.calibration-panel input{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:42px;padding:9px 10px}.point-readout{border:1px solid #ded8cc;border-radius:6px;gap:5px;padding:10px;display:grid}.point-readout span{color:#65706b;text-transform:uppercase;font-size:12px;font-weight:800}.point-readout strong{font-size:14px}.workbook-shell{flex-direction:column;height:calc(100vh - 61px);min-height:0;display:flex}.workbook-header{z-index:10;background:#fff;border-bottom:1px solid #d9d4c8;flex:none;position:sticky;top:61px}.workbook-header-main{justify-content:space-between;align-items:center;gap:24px;padding:8px 24px 0;display:flex}.workbook-title{min-width:0}.workbook-job-name{max-width:none;margin:0;font-size:17px;line-height:1.2}.workbook-meta{flex-shrink:0;gap:24px;display:flex}.workbook-meta-item{gap:4px;display:grid}.workbook-meta-item span{color:#65706b;text-transform:uppercase;font-size:11px;font-weight:800}.workbook-meta-item strong{font-size:14px}.workbook-title .eyebrow{display:none}.workbook-tabs{gap:0;margin-top:4px;padding:0 24px;display:flex}.workbook-tab{color:#65706b;white-space:nowrap;border-bottom:3px solid #0000;padding:10px 16px;font-size:13px;font-weight:800;text-decoration:none;transition:color .1s,border-color .1s}.workbook-tab:hover{color:#244c40}.workbook-tab.active{color:#244c40;border-bottom-color:#244c40}.workbook-body{flex:auto;min-height:0;padding:24px 32px;overflow:auto}.tab-content{max-width:1040px}.sheets-tab{flex-direction:column;max-width:none;height:100%;display:flex}.sheets-heading{flex:none;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.sheets-heading h2{margin:0;font-size:18px}.sheets-heading-actions{align-items:center;gap:12px;display:flex}.sheets-heading-actions .muted{font-size:12px}.sheets-tab .drawing-layout{padding:0}.sheets-list{background:#fff;border:1px solid #ded8cc;border-radius:8px;flex-direction:column;gap:4px;min-height:0;padding:10px;display:flex;overflow-y:auto}.sheets-list-group-head{justify-content:space-between;align-items:center;gap:8px;padding:8px 4px 4px;display:flex}.sheets-list-group-head span{color:#46524e;text-transform:uppercase;font-size:11px;font-weight:800}.sheets-tiles{grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:14px;padding:4px 4px 8px;display:grid}.sheet-tile{background:#fff;border:1px solid #ded8cc;border-radius:8px;transition:border-color .1s,box-shadow .1s;position:relative;overflow:hidden}.sheet-tile:hover{border-color:#9fb5ad}.sheet-tile.selected{border-color:#244c40;box-shadow:inset 0 0 0 2px #244c40}.sheet-tile-check{z-index:2;background:#ffffffe6;border-radius:4px;padding:3px;line-height:0;position:absolute;top:6px;left:6px}.sheet-tile-check input{cursor:pointer;width:16px;height:16px}.sheet-tile-link{color:inherit;text-decoration:none;display:grid}.sheet-tile-link img{aspect-ratio:11/8.5;object-fit:contain;background:#f5f3ee;border-bottom:1px solid #ded8cc;width:100%;padding:4px}.sheet-tile-info{gap:3px;padding:12px 14px;display:grid}.sheet-tile-info strong{font-size:15px}.sheet-tile-info strong.dup-label{color:#c2410c}.sheet-tile-info span{color:#65706b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sheet-rename-rows{flex-direction:column;gap:6px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.sheet-rename-row{align-items:center;gap:6px;display:flex}.sheet-rename-row .page-tag{color:#9aa6a1;flex:none;width:26px;font-size:10px}.sheet-rename-row input{font:inherit;border:1px solid #c9c1b2;border-radius:5px;min-width:0;padding:4px 6px;font-size:12px}.sheet-rename-row input.num{flex:0 0 70px}.sheet-rename-row input.name{flex:auto}.sheet-rename-row button{flex:none;min-height:26px;padding:4px 8px;font-size:11px}.rail-tool-actions{gap:8px;display:grid}.tab-section-heading{justify-content:space-between;align-items:end;margin-bottom:24px;display:flex}.takeoff-sheet-group{margin-bottom:32px}.takeoff-sheet-group-label{color:#46524e;text-transform:uppercase;margin:0 0 12px;font-size:13px;font-weight:800}.takeoff-sheet-grid{grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:14px;display:grid}.takeoff-sheet-card{color:inherit;background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:10px;padding:14px;text-decoration:none;transition:border-color .1s;display:grid}.takeoff-sheet-card:hover{border-color:#9fb5ad}.takeoff-sheet-card.active{border-color:#244c40;box-shadow:inset 0 0 0 1px #244c40}.takeoff-sheet-thumb{aspect-ratio:11/8.5;background:#f5f3ee;border:1px solid #ded8cc;border-radius:6px;justify-content:center;align-items:center;display:flex;overflow:hidden}.takeoff-sheet-thumb span{color:#afc7be;font-size:28px;font-weight:800}.takeoff-sheet-thumb img{object-fit:contain;width:100%;height:100%;display:block}.selected-sheet-banner{background:#fff;border:1px solid #afc7be;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;padding:14px 16px;display:flex}.selected-sheet-banner div{gap:4px;display:grid}.selected-sheet-banner span{color:#65706b;text-transform:uppercase;font-size:12px;font-weight:800}.selected-sheet-banner .primary-action{max-width:none}.sheets-workspace{gap:26px;margin-top:22px;display:grid}.sheets-plan-set{gap:14px;display:grid}.sheets-plan-set header{justify-content:space-between;align-items:center;display:flex}.sheets-plan-set header div{gap:5px;display:grid}.sheets-plan-set header span{color:#65706b;font-size:13px}.sheets-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.sheet-select-bar{align-items:center;gap:10px;margin:6px 0 10px;display:flex}.sheet-bulk-actions{background:#f3f1ea;border:1px solid #ded8cc;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;display:flex}.sheet-bulk-actions .bulk-scale{align-items:center;gap:6px;display:flex}.sheet-bulk-actions select{border:1px solid #c9c1b2;border-radius:6px;padding:6px 8px}.sheet-card-wrap{position:relative}.sheet-check{z-index:2;background:#ffffffeb;border:1px solid #ded8cc;border-radius:5px;align-items:center;padding:3px 5px;display:flex;position:absolute;top:8px;left:8px}.sheet-check input{cursor:pointer;width:16px;height:16px;margin:0}.sheet-card{color:inherit;background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:10px;padding:12px;text-decoration:none;display:grid}.sheet-card.selected{border-color:#5b8c7b;box-shadow:0 0 0 2px #5b8c7b59}.sheet-card:hover{border-color:#9fb5ad}.sheet-card img{aspect-ratio:4/3;object-fit:contain;background:#f5f3ee;border:1px solid #ded8cc;border-radius:6px;width:100%;display:block}.sheet-card div{gap:4px;display:grid}.sheet-card span{color:#65706b;font-size:13px}.notepad-tab{max-width:1280px;position:relative}.notepad-toolbar{align-items:end;gap:12px;margin-bottom:18px;display:flex}.notepad-toolbar label,.notepad-edit-panel label{gap:6px;display:grid}.notepad-toolbar span,.notepad-edit-panel label span{color:#46524e;text-transform:uppercase;font-size:12px;font-weight:800}.notepad-toolbar select,.notepad-edit-panel input,.notepad-edit-panel textarea{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;min-height:40px;padding:8px 10px}.notepad-edit-panel textarea{resize:vertical;min-height:90px}.notepad-table{background:#fff;border:1px solid #ded8cc;border-radius:8px;overflow-x:auto}.notepad-row{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:130px minmax(180px,1fr) 90px minmax(140px,1fr) 90px 60px 100px minmax(120px,1fr) 150px;align-items:center;gap:10px;width:100%;min-width:1160px;padding:10px 12px;display:grid}.notepad-row.header{color:#244c40;cursor:default;text-transform:uppercase;background:#dbe8e3;font-size:12px;font-weight:800}.notepad-row span:nth-child(5),.notepad-row span:nth-child(7){text-align:right}.notepad-group+.notepad-group{border-top:1px solid #ded8cc}.notepad-group-heading{background:#f8f7f4;justify-content:space-between;align-items:center;gap:12px;min-width:1160px;padding:10px 12px;display:flex}.notepad-group-heading span,.notepad-detail span{color:#65706b;font-size:13px}.notepad-actions{justify-content:flex-end;gap:6px;display:flex}.notepad-actions .secondary-action,.notepad-actions .danger-action{padding:7px 9px;font-size:12px}.notepad-detail{background:#fbfaf7;border-top:1px solid #ece6da;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:1160px;padding:10px 12px 14px;display:grid}.notepad-edit-panel{z-index:20;background:#16201f29;position:fixed;inset:0}.notepad-edit-panel form{background:#fff;border-left:1px solid #ded8cc;gap:16px;width:min(420px,100%);max-width:420px;height:100%;margin-left:auto;padding:24px;display:grid;box-shadow:-18px 0 42px #16201f29}.notepad-edit-panel header{justify-content:space-between;align-items:start;gap:12px;display:flex}.notepad-edit-panel h2{font-size:20px}.notepad-edit-dimensions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.takeoff-sheet-info{gap:4px;display:grid}.takeoff-sheet-info strong{font-size:14px}.takeoff-sheet-info span{color:#65706b;font-size:13px}.scale-set{color:#244c40!important}.scale-unset{color:#b07a40!important}.settings-danger-zone{border:1px solid #e2afa2;border-radius:8px;max-width:820px;margin-top:40px;padding:22px}.settings-danger-zone h2{margin-bottom:8px}.settings-danger-zone .muted{margin-bottom:18px}@media (width<=720px){.topbar,.job-row,.job-form,.plan-upload,.estimate-form,.estimate-summary-strip,.job-summary,.assembly-heading,.library-summary,.library-layout,.assembly-code-row,.assembly-item-fields.compact,.form-button-row{grid-template-columns:1fr}.topbar{align-items:start;gap:12px;display:grid}.takeoff-workspace{height:auto;min-height:calc(100vh - 61px)}.workspace-topbar{flex-wrap:wrap}.sheet-nav{padding-bottom:4px;display:flex;overflow-x:auto}.sheet-nav a{white-space:nowrap}.pdf-viewer{min-height:460px;padding:14px}.drawing-layout{grid-template-columns:1fr}.rail-tools{max-height:none}}.auth-loading{color:#65706c;text-align:center;padding:60px}.nav-user{align-items:center;gap:12px;display:flex}.nav-user-name{color:#46524e;font-size:13px;font-weight:700}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-form{background:#fff;border:1px solid #ded8cc;border-radius:10px;gap:16px;width:100%;max-width:360px;padding:32px;display:grid}.login-form h1{margin:0 0 4px}.login-form label{gap:7px;display:grid}.login-form span{color:#46524e;font-size:13px;font-weight:800}.login-form input{color:#16201f;font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:100%;min-height:42px;padding:9px 10px}.entry-mode-toggle{font-size:13px;font-weight:700}.entry-mode-toggle label{align-items:center;gap:6px;display:inline-flex}.entry-mode-toggle input{width:auto}.users-table{gap:10px;margin-top:20px;display:grid}.users-row{background:#fff;border:1px solid #ded8cc;border-radius:8px;grid-template-columns:2fr 1.5fr 1.2fr .8fr .8fr 1.6fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.users-row.header{color:#244c40;text-transform:uppercase;background:0 0;border:0;padding:0 14px;font-size:12px;font-weight:800}.users-row select{font:inherit;border:1px solid #cfc7b8;border-radius:6px;min-height:36px;padding:6px 8px}.users-password-form{align-items:center;gap:8px;display:flex}.users-password-form input{font:inherit;border:1px solid #cfc7b8;border-radius:6px;width:140px;min-height:36px;padding:6px 8px}@media (width<=900px){.users-row{grid-template-columns:1fr}}
