/* Shared desktop density. Keep readable text, compact controls and a single
   navigation level in project files. Print and drawing geometry are unchanged. */
@media screen {
 :root{--bindr-gap:10px;--bindr-padding:12px;--bindr-radius:6px;--bindr-control-radius:4px;--bindr-shadow:none}
 body{line-height:1.4}
 .view:not(#takeoffView){padding:14px 16px 28px}
 .topbar{padding:10px 16px;gap:10px;min-height:62px}
 .topbar h1{font-size:1.35rem}.screen-heading{gap:10px}
 .sidebar .nav-item{min-height:32px;padding-top:6px;padding-bottom:6px}
 .top-actions{gap:6px}
 .btn,.view .btn,.topbar .btn,dialog .btn,.project-file-explorer .btn{min-height:32px;padding:5px 10px;gap:6px;border-radius:4px;font-size:14px;line-height:1.35}
 .topbar .bindr-back,.bindr-back{min-height:32px;min-width:74px}
 .icon-btn{height:30px;min-height:30px;width:30px;min-width:30px;padding:5px}
 .view:not(#takeoffView) input:not([type=checkbox]):not([type=radio]):not([type=color]),.view:not(#takeoffView) select,dialog input:not([type=checkbox]):not([type=radio]):not([type=color]),dialog select{min-height:32px;padding:5px 8px;border-radius:4px;font-size:14px}
 .view:not(#takeoffView) textarea,dialog textarea{padding:6px 8px;border-radius:4px;font-size:14px}
 .view:not(#takeoffView) label,dialog label{font-size:13px}
 .view>.section-heading,.view>.crm-page-heading,.qr-section-heading{margin-bottom:12px;gap:10px}
 .crm-page-heading h2{font-size:20px}.crm-page-heading p{margin:4px 0;font-size:13px}
 .view .panel>.section-heading,.view .crm-panel-heading{padding:9px 12px;gap:10px}
 .view .section-heading h2,.view .crm-panel-heading h3,.view .cvr-report-panel h3{font-size:16px}
 .view:not(#takeoffView) .form-grid,.view:not(#takeoffView) .quote-edit-fields{gap:10px;padding:12px}
 .job-strip{grid-template-columns:minmax(150px,1.15fr) minmax(180px,1.35fr) minmax(150px,1.1fr) minmax(130px,.95fr) minmax(125px,.9fr);gap:7px 10px;padding:9px 12px;margin-bottom:10px}
 #estimateView .job-strip label{gap:3px;font-size:11px;line-height:1.2}
 #estimateView .job-strip input{min-height:29px;height:29px;padding:4px 7px;font-size:13px}
 #estimateView .job-strip small{font-size:9px;line-height:1.15;margin-top:0}
 .allowance-group{padding:6px 12px 12px}.allowance-group h3{font-size:16px;margin:7px 0}
 /* Each cost category is its own card, with the page background between cards. */
 #estimateView .allowances-panel{min-width:0;padding:0;background:transparent;border:0;box-shadow:none}
 #estimateView #allowanceInputs{display:grid;gap:var(--bindr-section-gap,22px);min-width:0;background:transparent}
 #estimateView #allowanceInputs .allowance-group{min-width:0;margin:0;padding:0 12px 12px;overflow:hidden;background:var(--bindr-card);border:1px solid var(--cost-border,var(--bindr-border));border-top:3px solid var(--cost-accent,#445267);border-radius:var(--bindr-radius);box-shadow:var(--bindr-shadow)}
 #estimateView #allowanceInputs .allowance-group>.allowance-section-heading{margin:0 -12px 2px;padding:10px 12px;background:var(--cost-tint,var(--bindr-subtle));border-bottom:1px solid var(--cost-border,var(--bindr-border))}

 .allowance-row{padding:8px 0}.allowance-fields{gap:9px}.allowance-fields label{gap:4px}
 .allowance-fields output{padding:6px 8px}.layer-choices{margin-top:8px;padding:8px;gap:8px}
 .breakdown{gap:10px;padding:12px}.saved-grid{gap:12px}.saved-card{padding:12px}
 .crm-two-col,.business-setup-grid,.qr-record-grid,.split-grid{gap:12px}
 .crm-filters,.estimate-link,.cvr-report-filters,.bindr-company-summary{padding:10px;gap:10px;margin-top:10px;margin-bottom:10px}
 .qr-info-card,.business-setup-grid .template-panel,.qr-quote-body{padding:12px}
 .qr-quote-card>summary,.job-folder>summary,.qr-support>.job-folder>summary{padding:10px 12px}
 .metric-grid,.crm-kpis{margin:12px 0;padding:10px 0}.metric-grid strong,.crm-kpis strong{font-size:23px}
 .view:not(#takeoffView) :is(.crm-table,.rate-table,.fx-table,.cvr-table,.job-saved-table,.estimate-table) td{padding:6px 9px!important;line-height:1.35;font-size:14px}
 .view:not(#takeoffView) :is(.crm-table,.rate-table,.fx-table,.cvr-table,.job-saved-table,.estimate-table) th{padding:7px 9px!important;line-height:1.3;font-size:12px}
 .view table .btn{min-height:28px;padding:3px 8px;font-size:13px}
 .view table input:not([type=checkbox]):not([type=radio]):not([type=color]),.view table select{min-height:29px;padding:4px 6px}
 .stage-badge,.crm-stat-badge{padding:2px 7px;font-size:12px;border-radius:4px}
 .recovery-density{gap:8px 22px;padding:10px 12px}.recovery-density strong{font-size:14px}
 .crm-empty,.qr-empty,.journey-empty{padding:16px}
 dialog{padding:18px}.bindr-dialog-actions,.fx-dialog-actions,dialog form>footer,dialog form>.top-actions:last-child{margin-top:14px}
 .activity-list article{padding:10px 12px}.activity-list article p{margin:5px 0}
 .record-details{gap:10px}.record-details>div{padding:8px 10px}
 .vjf-header{padding:12px 14px;gap:16px;margin-bottom:12px;border-radius:6px}
 .vjf-header h2{font-size:20px;margin:2px 0}.vjf-header p{font-size:13px}.vjf-eyebrow{font-size:11px}
 .vjf-job-status{font-size:12px;gap:2px 9px}.vjf-job-status strong{font-size:16px}
 .virtual-job-file .fx-body{grid-template-columns:205px minmax(0,1fr);min-height:400px}
 .virtual-job-file .fx-tree{padding:7px 5px;background:#f6f7f9}
 .virtual-job-file .fx-tree button{min-height:31px;padding:6px 7px;font-size:13px;border-radius:4px;gap:7px}
 .virtual-job-file .fx-tree button[aria-current]{border-color:transparent;box-shadow:inset 2px 0 #e17b23}
 .virtual-job-file .fx-tree svg{height:17px;width:17px;fill:none;stroke:#69798c;stroke-width:1.6}
 .vjf-tree-label{padding:10px 7px 4px;font-size:10px;letter-spacing:.05em}
 .virtual-job-file .fx-tree .fx-root{margin-bottom:1px}
 .virtual-job-file .fx-path{min-height:36px;padding:5px 10px;gap:4px;font-size:13px;background:#fff}
 .virtual-job-file .fx-path button{padding:3px 6px}.virtual-job-file .fx-path [aria-current]{padding:3px 6px}
 .virtual-job-file .fx-folder-heading{padding:10px 12px;gap:10px}
 .virtual-job-file .fx-folder-heading h3{font-size:16px;margin:0 0 2px}
 .virtual-job-file .fx-folder-heading span{font-size:12px}
 .virtual-job-file .fx-toolbar{padding:7px 10px;gap:8px}
 .virtual-job-file .fx-toolbar>div{gap:6px}
 .virtual-job-file .fx-table{min-width:600px}
 .virtual-job-file .fx-table svg{width:17px;height:17px;fill:#fff0dc;stroke:#b27b3f}
 .virtual-job-file .fx-file-name svg{fill:none;stroke:#6c7f96}
 .virtual-job-file .vjf-folder-row button.btn{min-height:27px;padding:3px 8px;font-size:12px}
 .virtual-job-file .vjf-folder-row small{font-size:11px;margin-top:1px;line-height:1.3}
 .virtual-job-file .fx-table td:nth-child(n+3){font-size:12px}
 .virtual-job-file .fx-status{padding:7px 12px;font-size:11px}
 .vjf-content{padding:0 12px 12px}.vjf-content>.crm-panel{margin-top:10px}
 .vjf-quote-controls{padding:8px 12px;gap:6px;margin-bottom:10px}
 .qr-upload-row,.qr-editor-action{padding:10px;margin-bottom:10px;gap:10px}
 .qr-drawing{padding:9px 10px;gap:10px}.qr-file-symbol{width:32px;height:36px}
 .qr-view-heading{margin-bottom:10px}.qr-view-heading h3{font-size:17px}
 .chase-page .pipeline-actions .btn{min-height:28px!important;padding:3px 8px!important}
 .chase-page .chase-block{margin-top:2px}.chase-summary{margin:8px 0}.chase-filter,.chase-value{padding:5px 9px;min-height:31px}
 @media(max-width:750px){.view:not(#takeoffView){padding:10px 10px 24px}.virtual-job-file .fx-body{grid-template-columns:minmax(0,1fr)}.virtual-job-file .fx-tree{display:none}.topbar{padding:10px}.vjf-header{gap:10px}}
 @media(pointer:coarse){.btn,.view .btn,.topbar .btn,dialog .btn,.project-file-explorer .btn,.view table .btn,.sidebar .nav-item{min-height:40px}.view:not(#takeoffView) input:not([type=checkbox]):not([type=radio]):not([type=color]),.view:not(#takeoffView) select{min-height:38px}}
}
@media screen and (max-width:1100px){#estimateView .job-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media screen and (max-width:700px){#estimateView .job-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 9px;padding:8px 10px}}
