.ws-panel{padding:20px}.ws-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid #d5e1e8;margin:14px 0}.ws-tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;padding:9px 12px;color:#536d7c}.ws-tabs button[aria-pressed=true]{color:#146d68;border-bottom-color:#146d68;background:#edf6f4}.ws-table table{font-size:13px}.ws-table th{white-space:nowrap}.ws-table td,.ws-table th{padding:13px 10px}.ws-table.ws-compact td,.ws-table.ws-compact th{padding:8px 9px}.ws-table .table-wrap{max-height:68vh;overflow:auto;border:1px solid #d5e1e8;border-radius:8px}.ws-table th{position:sticky;top:0;z-index:3;background:#f7f9fb}.ws-table .ws-sticky{position:sticky;left:0;background:#fff;min-width:180px;z-index:2}.ws-table th:first-child{left:0;z-index:4}.ws-table .ws-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ws-table button{font-size:12px;padding:5px 8px}.ws-table input{min-width:90px}.ws-table .ws-process td{background:#e8f2f1}.ws-table .ws-inactive td{background:#f7f6ef}.ws-row-actions{display:flex;flex-wrap:wrap;gap:3px;min-width:160px}.ws-details{margin:0;min-width:145px}.ws-details summary{margin:0;font-size:12px}.ws-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #e7edf2}.ws-frame-branch{border-bottom:1px solid #d5e1e8;padding:7px 0}.ws-frame-branch summary{margin-bottom:8px}.ws-basis{padding:12px 0;margin:10px 0;border-bottom:1px solid #d5e1e8}.ws-item-facts{display:grid;align-content:center;gap:3px;font-size:13px}.ws-item-facts strong{font-size:22px}.ws-item-facts small{color:#67808f}.ws-numbers{margin:16px 0 0}.ws-matrix td{min-width:90px}.ws-panel>details{margin:10px 0}.ws-panel textarea{min-height:70px}.ws-panel .toolbar{margin-top:12px;margin-bottom:12px}.ws-panel .panel-head{margin-bottom:12px}.ws-panel .row{margin-bottom:12px}.ws-panel .help{margin-top:10px}#workspace-search{max-width:400px}.ws-table .error{padding:4px;margin:0}.shell:has(.ws-panel){max-width:none}.ws-matrix .table-wrap{border-collapse:separate}
@media(max-width:620px){.ws-panel{padding:14px}.ws-tabs button{padding:9px}.ws-list-row{flex-wrap:wrap}.ws-table .ws-sticky{min-width:145px;max-width:220px}.ws-table .table-wrap{max-height:none}.ws-row-actions{min-width:130px}}
/* Keep working tables above the fold on typical laptop screens. */
.shell:has(.ws-panel){padding-top:16px;padding-left:24px;padding-right:24px}
.shell:has(.ws-panel)>header{margin-bottom:12px}
.shell:has(.ws-panel) h1{font-size:25px}
.shell:has(.ws-panel) .test-banner{padding:8px 12px;margin-bottom:12px}
.shell:has(.ws-panel) .panel{margin:12px 0}
.ws-panel{padding:16px}
.ws-panel .ws-tabs{margin:10px 0 0}
.ws-panel .toolbar{gap:7px;margin:8px 0}
.ws-panel .toolbar button{font-size:12px;padding:7px 9px}
.ws-panel .row{gap:12px;margin-bottom:8px}
.ws-panel .ws-basis{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0;padding:6px 0}
.ws-basis details{margin:0}.ws-basis summary{margin:0}
.shell:has(.ws-panel) .subhead{margin-bottom:8px}
.ws-panel h2{font-size:18px}
.ws-panel .panel-head{margin-bottom:8px}
.ws-panel .ws-tabs button{font-size:13px;padding:8px 10px}
.ws-table:not(.ws-matrix) td:last-child:has(button[data-tech=edit]){position:sticky;right:0;background:#fff}
@media(max-width:620px){.shell:has(.ws-panel){padding:16px}.ws-panel .ws-basis{align-items:flex-start}.ws-panel{padding:12px}}

dialog:has(#package-editor){width:min(1180px,97vw)}
#package-editor{display:grid;gap:10px}#package-editor p{margin:3px 0}#package-editor h3{font-size:16px;margin:10px 0 4px}
.package-table table{width:100%;font-size:12px}.package-table td,.package-table th{padding:9px 8px;vertical-align:middle}.package-table td:not(:first-child){font-variant-numeric:tabular-nums}.package-table th{white-space:nowrap}.package-table .table-wrap{overflow:auto;border:1px solid #d5e1e8;border-radius:8px}
.package-overview table{min-width:960px}.package-overview td:nth-child(n+4){white-space:nowrap}.package-overview button{font-size:12px;padding:7px 9px}.package-overview small{display:block}
.package-heading,.package-toolbar,.package-optimizer,.package-proposal{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.package-heading{justify-content:space-between;padding-bottom:8px;border-bottom:1px solid #d5e1e8}.package-toolbar button,#package-editor button{font-size:12px;padding:8px 10px}.package-optimizer{background:#eef5f4;border-radius:8px;padding:10px;align-items:flex-end}.package-optimizer label{font-size:12px;display:grid;gap:4px}.package-optimizer select{padding:8px;font-size:13px}.package-proposal{padding:10px;background:#e5f4ed;border:1px solid #b4d6c7;border-radius:8px}.package-proposal span{font-size:12px}.package-proposal button{margin-left:auto}
#package-rows table{min-width:800px}#package-rows select,#package-rows input{font-size:12px;padding:8px 5px}#package-rows select{min-width:130px}#package-rows td:nth-child(3){width:33%}#package-rows td:nth-child(4),#package-rows td:nth-child(5){white-space:nowrap}.package-counter{display:flex;align-items:center;gap:3px}.package-counter input{width:65px;min-width:65px}.package-counter button{padding:6px!important;min-width:26px}
#package-preview table{min-width:680px}#package-preview td{text-align:right;white-space:nowrap}#package-preview th[scope=row]{text-align:left;font-weight:500}#package-preview tr:nth-child(3),#package-preview tr:nth-child(5){background:#edf5f4}.package-saving{color:#146342;font-weight:600}.package-increase{color:#a13b27;font-weight:600}
@media(max-width:650px){dialog:has(#package-editor){padding:12px}.package-heading{align-items:flex-start}.package-optimizer label{flex:1}.package-optimizer select{max-width:100%}.package-proposal button{margin-left:0}}

dialog:has(#package-editor) .dialog-head{position:sticky;top:-26px;z-index:6;background:#fff;padding:10px 0;margin-top:-10px}dialog:has(#package-editor) .dialog-actions{position:sticky;bottom:-26px;z-index:6;background:#fff;padding:10px 0;border-top:1px solid #d5e1e8}
@media(max-width:650px){dialog:has(#package-editor) .dialog-head{top:-12px}dialog:has(#package-editor) .dialog-actions{bottom:-12px}}
/* Purchasing workspace: compact master rows and a supplier price matrix. */
.cw-panel .panel{padding:12px;margin:12px 0}.cw-filters{display:grid;grid-template-columns:repeat(4,minmax(125px,1fr));gap:10px;margin:14px 0}.cw-filters label{font-size:12px}.cw-filters input,.cw-filters select{padding:8px;font-size:13px}.cw-filters .cw-search{grid-column:span 3}.cw-check{display:flex;align-items:center;gap:7px}.cw-check input{width:auto}.cw-table{margin-top:12px}.cw-table> .table-wrap>table{min-width:930px}.cw-table th,.cw-table td{padding:9px 10px;font-size:12px;vertical-align:middle}.cw-table th{white-space:nowrap}.cw-table small{display:block;font-size:11px}.cw-table button{font-size:12px;padding:6px 9px}.cw-selected>td{background:#eaf5f2}.cw-issue{display:block;color:#946115;font-size:11px}.cw-ready{color:#17674d}.cw-actions{display:flex;flex-wrap:wrap;gap:5px}.cw-pager{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-top:10px;gap:8px}.cw-pager>div{display:flex;align-items:center;gap:10px}.cw-pager button{font-size:12px;padding:6px 10px}.cw-detail>td{padding:0 10px 14px;background:#f2f7f7}.cw-matrix{padding:14px;border:1px solid #c8dad8;border-radius:9px;background:#fff}.cw-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.cw-detail-head h3{margin:0;font-size:15px}.cw-matrix-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0}.cw-matrix-toolbar label{display:flex;align-items:center;gap:9px;font-size:12px;white-space:nowrap}.cw-matrix-toolbar select{font-size:12px;padding:7px;width:auto}.cw-matrix-table>.table-wrap{max-height:58vh;overflow:auto;border:1px solid #d5e1e8;border-radius:7px}.cw-matrix-table table{min-width:650px}.cw-matrix-table th{position:sticky;top:0;z-index:3}.cw-matrix-table td:first-child,.cw-matrix-table th:first-child{position:sticky;left:0;background:#f5f9f8;min-width:110px;z-index:2}.cw-matrix-table th:first-child{z-index:4}.cw-matrix-table td:nth-child(2){min-width:160px;max-width:230px}.cw-matrix-table td:nth-child(n+3){min-width:205px}.cw-matrix-table td{vertical-align:top}.cw-price-cell{display:block;width:100%;text-align:left!important;min-height:94px;background:#fff;border:1px solid #d7e1e7;border-radius:6px;padding:8px!important;font-weight:400}.cw-price-cell:hover{background:#f0f8f6}.cw-price-cell strong{font-size:13px;font-weight:600;margin:4px 0 0}.cw-cell-action{color:#146d68;margin-top:5px}.cw-state{display:inline-block;border-radius:4px;font-size:11px;padding:2px 5px;font-weight:500}.cw-ready.cw-state{background:#e7f5ed}.cw-missing_price,.cw-expired{color:#8c5412;background:#fff1d7}.cw-unavailable,.cw-disabled{color:#566b7b;background:#e9edf1}.cw-unrecorded{color:#476579;background:#eef4f8}.cw-matrix details{margin-top:5px}.cw-matrix details summary{font-size:11px}.cw-matrix details p{font-size:11px;white-space:normal;overflow-wrap:anywhere}.cw-list-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:12px}.cw-manufacturers{padding:12px 16px}.cw-form-context{padding:12px;background:#edf5f4;border-radius:8px;display:grid;gap:3px}
@media(max-width:900px){.cw-filters{grid-template-columns:repeat(2,minmax(120px,1fr))}.cw-filters .cw-search{grid-column:span 1}.cw-detail-head,.cw-matrix-toolbar{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.cw-filters{grid-template-columns:1fr}.cw-matrix{padding:8px}.cw-pager{flex-wrap:wrap}.cw-list-head{flex-wrap:wrap}.cw-matrix-table>.table-wrap{max-height:65vh}}

/* Supplier catalog is shared; company purchasing permission is a separate matrix. */
.cw-filters{grid-template-columns:repeat(3,minmax(125px,1fr))}.cw-filters .cw-search{grid-column:span 2}.company-supplier-table td{min-width:170px}.company-supplier-table td:first-child{min-width:220px}.company-supplier-table button{width:100%;text-align:left}.company-supplier-table small{display:block}
@media(max-width:900px){.cw-filters{grid-template-columns:repeat(2,minmax(120px,1fr))}.cw-filters .cw-search{grid-column:span 1}}
@media(max-width:620px){.cw-filters{grid-template-columns:1fr}}

/* Project prices: compact product overview, expandable variants, batch quotation. */
.pp-workspace small{display:block}.pp-access{margin:12px 0;color:#486577;font-size:12px}.pp-material-table button.link{font-size:14px}.pp-selected>td{background:#f0f8f6}.pp-matrix{border:1px solid #d5e4e1;border-radius:8px;padding:14px;background:#fff}.pp-variants .table-wrap{max-height:540px}.pp-variants th{position:sticky;top:0;z-index:2}.pp-row-actions{display:grid;gap:6px}.pp-variants td:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:160px}.pp-workspace .cw-table small{max-width:260px}.pp-workspace .cw-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:14px 0}.pp-batch-table .table-wrap{max-height:48vh}.pp-batch-table td:first-child{min-width:230px}.pp-batch-table select{min-width:195px}.pp-batch-table input[type=number]{min-width:95px}.pp-batch-table input[type=checkbox]{width:18px;height:18px;flex:none}.pp-batch-table th{position:sticky;top:0;z-index:2}.pp-batch-table small{white-space:normal}dialog:has(#pp-batch){width:min(1240px,97vw)}dialog:has(#pp-batch) .dialog-actions{position:sticky;bottom:-26px;z-index:5;background:white;padding:12px 0;border-top:1px solid #d5e1e8}
.pp-material-table>.table-wrap>table{table-layout:fixed}.pp-matrix{min-width:0}.pp-matrix .panel-head{flex-wrap:wrap}.pp-matrix .panel-head>.actions{flex:1;justify-content:flex-end}.pp-matrix .panel-head>div:first-child{flex:1;min-width:230px}.pp-variants>.table-wrap>table{min-width:870px}.pp-variants td{vertical-align:top}.pp-more{font-size:11px}.pp-more summary{cursor:pointer;color:#146d68}.pp-more button{display:block;margin-top:5px;width:100%}.pp-batch-table label{font-size:12px}
.pp-variants td:first-child{position:static}

.cost-table{margin-top:14px}.cost-table table{min-width:780px}.cost-table td:nth-child(2),.cost-table td:nth-child(3),.cost-table td:last-child{white-space:nowrap}.cost-table small{display:block}.cost-table details{margin:2px 0;font-size:11px}.cost-table summary{margin:0}.cost-table td:last-child{text-align:right}.cost-table th:last-child{text-align:right}

/* Keep every offer item visible while showing the selected composition below. */
.ws-line-overview{margin:12px 0 20px}
.ws-line-summary{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;margin-bottom:10px;font-size:13px}
.ws-line-overview .table-wrap{max-height:none}
.ws-line-overview table{table-layout:fixed;width:100%}
.ws-line-overview th:first-child{width:36%}
.ws-line-overview th:nth-child(2){width:20%}
.ws-line-overview td{overflow-wrap:anywhere}
.ws-line-overview .badge{white-space:normal;margin-top:4px}
.ws-line-overview .ws-num{white-space:normal}
.ws-line-overview th{white-space:normal}
.ws-line-overview td{vertical-align:middle}
.ws-line-overview small{display:block;margin-top:3px}
.ws-line-overview .ws-line-choice{font-size:14px;padding:6px 8px;text-align:left;white-space:normal;border:1px solid transparent;background:transparent;color:#146d68}
.ws-line-overview .ws-line-choice:hover{background:#e2f1ed;border-color:#94c5bd}
.ws-line-overview .ws-line-choice:focus-visible{outline:2px solid #146d68;outline-offset:2px}
.ws-line-selected>td{background:#edf7f4}
.ws-line-selected>td:first-child{box-shadow:inset 4px 0 #16706a}
.ws-line-current{color:#146d68;padding-left:8px;font-weight:600}
.ws-line-issue{color:#946115}
.ws-line-detail{border-top:1px solid #d5e1e8;padding-top:18px}
.ws-selected-title{flex:1;min-width:180px}
.ws-selected-title h3{margin:4px 0 10px;font-size:19px}

.ws-system-companies td{vertical-align:middle}
.ws-system-companies td:first-child{min-width:210px}
.ws-system-companies small{display:block;margin-top:3px}
.ws-system-companies th{white-space:normal;min-width:105px}
.ws-system-companies .ws-company-cell{min-width:150px}
.ws-company-cell label{margin:0;font-size:12px;cursor:pointer}
.ws-company-cell input{accent-color:#16706a;width:18px;height:18px;flex:none}
.ws-company-cell:has(input:checked){background:#edf7f4}
.ws-company-cell label:has(input:disabled){cursor:default}
