/* The project modal keeps one viewport-sized frame for every tab. */
#project-dialog{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;inset:0;margin:0;padding:20px 26px;border:0;border-radius:0;overflow:hidden;box-sizing:border-box}
#project-dialog[open]{display:flex;flex-direction:column}
#project-dialog>.dialog-heading,#project-dialog>.tabs{flex-shrink:0}
#project-dialog>.tabs{overflow-x:auto;white-space:nowrap;min-height:44px;margin-bottom:16px}
#project-dialog>[id$="-tab"]{flex:1;min-height:0;overflow:auto;padding:2px 4px 16px}
#project-dialog #project-form{max-width:none}
.wide-dialog{width:1150px;max-width:96vw}
.price-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.price-controls label:not(.checkbox-label){flex:1;min-width:180px}.price-controls .checkbox-label{padding-bottom:12px}
.price-table-scroll{overflow:auto;max-height:60vh;min-height:100px;border:1px solid var(--border);border-radius:6px}
.price-table{white-space:normal;font-size:12px}.price-table th{font-size:11px}.price-table th,.price-table td{padding:10px 12px}.price-table .price-description{min-width:230px;max-width:550px;white-space:pre-wrap;overflow-wrap:anywhere}.price-table .price-description>div{max-height:100px;overflow:auto}.price-table .price-code{min-width:125px;white-space:pre-wrap;overflow-wrap:anywhere}.price-table .price-number{text-align:right;white-space:nowrap}.price-table td small{display:block;margin-top:4px;white-space:normal}.price-table input[type=text],.price-table input:not([type]){width:80px;padding:6px}
.build-summary{display:flex;gap:15px;flex-wrap:wrap;margin:16px 0}.build-summary strong{font-size:15px}.build-summary .error{padding:5px}.build-task-fields{margin-top:20px}.build-done .price-description{color:var(--muted)}
#build-picker-items{max-height:40vh}#build-picker-count{margin-right:auto}.catalogue-notes{margin-top:20px}.catalogue-notes p{font-size:12px;white-space:pre-wrap;line-height:1.5}.price-source{font-size:11px;color:var(--muted)}
#price-list-form{display:grid;gap:16px}
.price-controls .filter-menu{min-width:180px}
.price-controls .filter-menu summary{padding:10px 12px;background:white}
.price-controls .filter-options{max-height:320px;overflow:auto}
@media(max-width:800px){.price-controls .filter-menu{min-width:0;width:100%}}
#price-items [data-price-item]{cursor:pointer}#price-items [data-price-item]:focus{outline:2px solid var(--teal);outline-offset:-2px}
#price-items [data-price-item]:focus-within{outline:2px solid var(--teal);outline-offset:-2px}#price-items tr.price-selected{background:#e6f2eb}
.price-category-row{display:flex;align-items:flex-end;gap:10px;padding:14px 0;border-bottom:1px solid var(--border)}.price-category-row label{flex:1;min-width:150px}.price-category-row button{flex-shrink:0}#price-selection-bar{margin:14px 0}#price-project-items{margin-top:16px}
@media(max-width:650px){.price-category-row{flex-wrap:wrap}.price-category-row label{flex-basis:100%}}
@media(max-width:800px){#project-dialog{padding:12px 10px}#project-dialog>.dialog-heading{margin-bottom:12px}#project-dialog .dialog-heading h2{font-size:20px}.price-controls{align-items:stretch}.price-table .price-description{min-width:190px}.wide-dialog{padding:16px}.build-task-fields{grid-template-columns:1fr}}
