.products-workspace{--pw-border:#dee4ee;--pw-muted:#596577;max-width:1600px;margin-inline:auto;color:#20242b}
.products-workspace .page-heading{padding-bottom:16px}.products-workspace .card{padding:24px;border:1px solid var(--pw-border);border-radius:12px;box-shadow:none;margin-bottom:24px;background:#fff}.products-workspace h2{font-size:18px;line-height:1.4;margin:0 0 16px}.products-workspace h3{font-size:15px;line-height:1.5}.products-workspace .muted,.products-workspace dt{color:var(--pw-muted)}
.pw-identity{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--pw-muted);font-size:13px;margin-bottom:24px}.pw-source{margin-left:auto}.pw-tabs{margin-bottom:24px!important}.products-workspace .tabs{gap:4px;flex-wrap:wrap}.products-workspace .tabs a{padding:10px 14px}.products-workspace .tabs a.selected{color:#2452d6;background:#edf2ff}
.pw-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:white;border:1px solid var(--pw-border);border-radius:12px;margin:0 0 24px;padding:24px 0}.pw-summary>div{padding:0 24px;border-right:1px solid var(--pw-border);display:flex;flex-direction:column;gap:8px;min-width:0}.pw-summary>div:last-child{border:0}.pw-summary span,.pw-summary small{font-size:12px;color:var(--pw-muted)}.pw-summary strong{font-size:26px;font-variant-numeric:tabular-nums;line-height:1.3}.pw-summary strong.pw-status{font-size:20px}.pw-summary strong small{font-size:14px;font-weight:500}
.pw-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.pw-columns>.card{min-width:0}.pw-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin:16px 0 8px}.pw-facts div{min-width:0}.pw-facts dt{font-size:12px;line-height:1.5;margin-bottom:6px}.pw-facts dd{margin:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere;font-weight:500}
.products-workspace summary{cursor:pointer;line-height:1.6;font-weight:600}.products-workspace details[open]>summary{margin-bottom:20px}.products-workspace th{font-size:12px;color:var(--pw-muted);background:#f7f9fc}.products-workspace td{font-size:13px;vertical-align:middle}.products-workspace td small{display:block;color:var(--pw-muted);font-size:12px;margin-top:5px}.products-workspace .num{font-variant-numeric:tabular-nums}.products-workspace .table-wrap{border:1px solid var(--pw-border);border-radius:8px}.pw-section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.pw-section-head h2{margin-bottom:4px}.pw-section-head p{margin:8px 0}.pw-total{font-size:18px;white-space:nowrap;color:#246448;font-weight:600}.pw-warning{color:#946014}.pw-phase{padding:10px 12px;background:#edf2ff;color:#23429b;border-radius:6px;margin-top:24px}.pw-editor{margin-top:24px;border-top:1px solid var(--pw-border);padding-top:20px}.pw-empty{padding:28px 16px;text-align:center;color:var(--pw-muted);background:#f7f9fc;border-radius:8px}.pw-empty h3{margin:0 0 8px;color:#20242b}.pw-empty p{margin:0;line-height:1.6}.pw-dependency{border-bottom:1px solid var(--pw-border);padding:8px 0}.pw-dependency small{display:block;color:var(--pw-muted);margin-top:4px}.pw-result{background:#edf2ff;padding:16px;border-radius:8px}.pw-revision{padding:16px 0;border-top:1px solid var(--pw-border)}.pw-revision p{font-size:13px}.pw-suppliers{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.pw-suppliers article{border:1px solid var(--pw-border);border-radius:8px;padding:20px}
.pw-edit-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;background:#f7f9fc;border:1px solid var(--pw-border);padding:20px;border-radius:8px;margin-bottom:16px}.pw-edit-row .pw-material{grid-column:span 2}.pw-edit-row label,.products-workspace .form-grid label{display:block;font-size:12px;line-height:1.5;margin-bottom:6px;color:#394454}.pw-edit-row input:not([type=checkbox]),.pw-edit-row select{width:100%;min-width:0}.pw-remove{display:flex;align-items:center;gap:8px}.pw-remove label{margin:0}.pw-edit-row.is-deleted{opacity:.55}.products-workspace form>button.primary{margin-top:20px}.products-workspace .errorlist{color:#a32929;font-size:12px;padding-left:18px}.products-workspace [data-add-row]{margin-right:12px}.pw-live-total{font-weight:600;font-variant-numeric:tabular-nums}.products-workspace .form-grid{margin-block:20px}.products-workspace input:focus-visible,.products-workspace select:focus-visible,.products-workspace button:focus-visible,.products-workspace a:focus-visible,.products-workspace summary:focus-visible{outline:2px solid #2452d6;outline-offset:3px}.products-workspace .pw-stock-flag{display:block;font-size:12px;color:#946014;margin-bottom:4px}
.products-workspace [data-product-charts]:not([data-individual]){display:grid;grid-template-columns:1fr 1fr;gap:24px}.products-workspace [data-product-charts] .chart-toolbar{grid-column:1/-1}.products-workspace [data-product-charts]:not([data-individual])>section:last-child{grid-column:1/-1}.products-workspace [data-product-charts]>.card{min-width:0;margin:0}.products-workspace .chart-canvas{overflow:auto}.products-workspace .product-analysis-grid>*{min-width:0}.products-workspace .product-analysis-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:1100px){.pw-summary{grid-template-columns:1fr 1fr;gap:24px 0}.pw-summary>div:nth-child(2){border:0}.pw-columns{grid-template-columns:1fr}.pw-edit-row{grid-template-columns:1fr 1fr}.products-workspace [data-product-charts]:not([data-individual]),.products-workspace .product-analysis-grid{grid-template-columns:1fr}}
@media(max-width:640px){.products-workspace .card{padding:16px;margin-bottom:16px}.pw-summary{padding:16px 0}.pw-summary>div{padding:0 16px}.pw-summary strong{font-size:22px}.pw-summary strong.pw-status{font-size:16px}.pw-source{margin-left:0;width:100%}.pw-facts{gap:16px}.pw-edit-row{padding:12px;gap:12px}.pw-section-head{align-items:flex-start;flex-direction:column}.pw-tabs{flex-wrap:nowrap!important;overflow-x:auto}.pw-tabs a{white-space:nowrap}.pw-columns{gap:0}.products-workspace .product-period-form{flex-wrap:wrap}}
@media(prefers-reduced-motion:no-preference){.products-workspace a,.products-workspace button{transition:background-color .15s ease,color .15s ease,border-color .15s ease}}

.products-workspace [data-product-charts]{margin-bottom:24px}.products-workspace .chart-canvas svg{min-width:0;width:100%;height:auto}.pw-phase+.table-wrap table{table-layout:fixed;min-width:700px}.pw-phase+.table-wrap th:nth-child(1){width:8%}.pw-phase+.table-wrap th:nth-child(2){width:32%}.pw-phase+.table-wrap th:nth-child(3){width:15%}.pw-phase+.table-wrap th:nth-child(4){width:20%}.pw-phase+.table-wrap th:nth-child(5){width:25%}
@media(max-width:640px){.products-workspace .chart-canvas svg{min-width:460px}}

/* Input transformations use the same catalogue records in both directions. */
.pw-stage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px}.pw-stage{border:1px solid var(--line,#e1e5ee);border-radius:12px;padding:20px;background:#fafbfe}.pw-stage h3{margin:8px 0}.pw-eyebrow{color:#5c539b;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pw-stage .pw-facts{grid-template-columns:1fr 1fr}.pw-stage .pw-facts dd{overflow-wrap:anywhere}.pw-suppliers details{margin-top:16px}.pw-suppliers form{margin-top:12px}

/* 0.30 Stock: dense reading, contextual editing. */
.products-workspace{max-width:none;min-width:0}
.products-workspace .page-heading{padding-bottom:0;margin-bottom:18px}
.products-workspace .card{padding:18px;border-radius:9px;margin-bottom:16px}
.products-workspace h2{font-size:16px;margin-bottom:12px}
.products-workspace h3{font-size:14px}
.pw-identity{margin-bottom:14px;gap:10px}.pw-tabs{margin-bottom:18px!important}
.pw-summary{padding:16px 0;margin-bottom:16px}.pw-summary>div{padding:0 18px;gap:5px}.pw-summary strong{font-size:24px}
.pw-columns{gap:16px;align-items:start}.pw-facts{gap:12px 20px;margin:10px 0}.pw-facts dt{margin-bottom:3px}
.pw-suppliers article{border:0;border-radius:0;padding:0}.pw-suppliers .pw-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.pw-section-head{margin-bottom:10px}.pw-section-head h2{margin:0}
.pw-stock-line{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;border-top:1px solid var(--pw-border);padding:14px 0;font-size:13px}
.pw-stock-line span{color:var(--pw-muted)}.pw-stock-line b{color:#26334a;margin-left:5px;font-variant-numeric:tabular-nums}
.products-workspace .pw-editor{border:0;padding:0;margin:8px 0;display:block}
.products-workspace .pw-editor>summary{display:inline-flex;align-items:center;font-size:12px;font-weight:500;list-style:none;padding:5px 8px;border-radius:6px;color:#566171}
.pw-editor>summary::-webkit-details-marker{display:none}
.products-workspace .pw-editor>summary:hover{background:#f1f3f6}
.pw-pencil{border:0;background:transparent;color:#667180;font-size:18px;padding:4px 7px;min-height:30px}
.pw-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.pw-title-row h2,.pw-title-row h3{margin:0}.pw-title-row .pw-pencil{margin-left:auto}
.pw-stock-editor,.pw-history{display:inline-block!important}.pw-yield p{display:inline-block;margin:0 24px 6px 0}
.pw-empty{padding:10px;text-align:left;background:transparent}
.products-workspace .pw-stage-grid{display:block}.pw-stage{border:0;border-bottom:1px solid var(--pw-border);border-radius:0;background:transparent;padding:12px 0}.pw-stage:last-child{border-bottom:0}.pw-stage .pw-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
.products-workspace th,.products-workspace td{padding:10px 12px}.products-workspace .table-wrap{max-width:100%;overflow:auto}
.pw-active-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2e8062;margin-right:8px;vertical-align:middle}.pw-active-dot.inactive{background:#8993a1}
.pw-indicators{display:flex;gap:5px;align-items:center}.pw-indicator{width:28px;height:28px;min-height:28px;padding:4px;border:0;color:#8490a1;background:transparent;border-radius:5px}.pw-indicator svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.pw-indicator.confirmed{color:#247052}.pw-indicator.warning{color:#a96706}.pw-indicator:hover{background:#eef1f5}
.pw-dialog{width:min(880px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #e1e5eb;border-radius:12px;box-shadow:0 18px 70px #17203330;color:#20242b;overflow:auto}
.pw-dialog::backdrop{background:#17203355}
.pw-dialog-head{position:sticky;top:0;z-index:2;background:white;border-bottom:1px solid #e8ebef;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.pw-dialog-head h2{font-size:17px;margin:0}.pw-dialog-head button{border:0;font-size:22px;padding:0 8px}
.pw-dialog-body{padding:20px}.pw-dialog-body .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 18px}
.pw-dialog-body input:not([type=checkbox]),.pw-dialog-body select,.pw-dialog-body textarea{width:100%;min-width:0;padding:8px 10px}
.pw-dialog-body input[type=number]{max-width:155px}.pw-dialog-body input[type=date]{max-width:180px}.pw-dialog-body label{display:block;font-size:12px;margin-bottom:5px}.pw-dialog-body .helptext{display:block;font-size:12px;color:#667180}
.pw-dialog-body button.primary{margin-top:16px}.pw-dialog-body .errorlist{color:#a32929}.pw-dialog-body .errorlist:empty{display:none}
.pw-dialog-body .pw-edit-row{display:grid;grid-template-columns:minmax(220px,1fr) 115px 135px 55px;gap:10px;background:white;border:0;border-bottom:1px solid #e5e9ef;border-radius:0;padding:10px 0;margin:0}
.pw-dialog-body .pw-edit-row .pw-material{grid-column:auto}.pw-dialog-body [data-prefix=formula] .pw-edit-row{grid-template-columns:minmax(200px,2fr) repeat(3,minmax(80px,1fr))}
.pw-dialog-body [data-prefix=formula] .pw-material{grid-column:span 2}.pw-dialog-body .pw-remove{align-self:end}.pw-remove input{width:auto}.pw-remove label{font-size:11px}
.pw-dialog-body [data-add-row]{margin-top:12px}.pw-dialog-body .pw-edit-row.is-deleted{opacity:.5}
.pw-yield-fields{display:grid;grid-template-columns:1.2fr 1fr 90px;gap:16px;margin-bottom:16px}
.pw-search-select{display:grid;gap:4px}.pw-search-select input{font-size:12px}
.products-workspace [data-product-charts]:not([data-individual]){align-items:start;gap:18px}
.products-workspace .product-metric{padding:14px 18px;min-height:0}.products-workspace .product-metric strong{font-size:26px}.products-workspace .product-metrics{margin-bottom:16px;gap:12px}
.products-workspace .chart-series{display:flex;flex-wrap:wrap;gap:6px}.products-workspace .chart-series>*{margin:0;max-width:100%}
.products-workspace .chart-canvas svg{min-width:0!important}.products-workspace .product-rank{gap:10px;padding-block:5px}.products-workspace [data-chart-caption]{font-size:12px;margin-top:8px}
.pw-bulk-launch{position:sticky;top:8px;z-index:3;background:white;border:1px solid #dce2eb;border-radius:7px;padding:8px 12px;display:inline-flex;gap:12px;align-items:center;margin-bottom:10px}
.pw-bulk-launch[hidden]{display:none!important}
@media(max-width:900px){.pw-suppliers .pw-facts,.pw-stage .pw-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.products-workspace [data-product-charts]:not([data-individual]){grid-template-columns:1fr}}
@media(max-width:600px){.pw-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.pw-dialog-body{padding:14px}.pw-dialog-body .form-grid,.pw-yield-fields{grid-template-columns:1fr}.pw-dialog-body .pw-edit-row,.pw-dialog-body [data-prefix=formula] .pw-edit-row{grid-template-columns:1fr 1fr}.pw-dialog-body .pw-edit-row .pw-material{grid-column:1/-1}.pw-summary>div{padding-inline:14px}.pw-facts{grid-template-columns:1fr 1fr}.pw-stock-line{gap:10px}.pw-stock-line strong{width:100%}}
.pw-period-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;width:100%;margin-top:8px}.pw-period-toolbar label{display:flex!important;flex-direction:column;font-size:12px;gap:4px}.pw-period-toolbar input,.pw-period-toolbar select{max-width:180px!important}.pw-period-toolbar~*{min-width:0}
.pw-dialog .pw-edit-row .pw-remove label[hidden],.pw-dialog .form-grid>div[hidden]{display:none!important}
/* Keep numeric fields aligned even when their captions wrap. */
.pw-dialog .pw-edit-row > div > label{display:flex;align-items:flex-end;min-height:2.7em;margin-bottom:6px}
.pw-dialog .pw-cancel{margin-top:12px}
.pw-facts dt .pw-pencil{margin-left:5px;vertical-align:middle}
