.product-workspace {
  display:grid;
  gap:20px;
  max-width:1560px;
  margin:0 auto
}
.product-workspace button,.product-workspace input,.product-workspace select,.product-workspace textarea {
  font:inherit
}
.product-workspace button:focus-visible,.product-workspace summary:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:3px
}
.pw-heading,.pw-dialog-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px
}
.pw-heading h2 {
  font-size:28px;
  letter-spacing:-.8px;
  margin:3px 0 8px
}
.pw-heading p:not(.pw-eyebrow) {
  font-size:13px;
  color:var(--muted);
  line-height:1.6
}
.pw-eyebrow {
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--accent-text)
}
.pw-readonly {
  font-size:12px;
  color:var(--muted);
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:8px
}
.pw-stats {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px
}
.pw-stats button {
  display:grid;
  gap:8px;
  text-align:left;
  padding:18px 20px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  color:var(--text);
  cursor:pointer
}
.pw-stats button:hover {
  border-color:var(--accent)
}
.pw-stats span {
  font-size:12px;
  font-weight:600
}
.pw-stats strong {
  font-size:27px;
  line-height:1.15;
  letter-spacing:-.7px
}
.pw-stats small {
  font-size:11px;
  color:var(--muted)
}
.pw-stats .pw-warn {
  border-left:3px solid var(--warn)
}
.pw-warn strong {
  color:var(--warn)
}
.pw-controls {
  display:grid;
  gap:18px
}
.pw-tabs {
  display:flex;
  gap:6px;
  border-bottom:1px solid var(--border);
  padding-bottom:10px
}
.pw-tabs button {
  border:1px solid transparent;
  border-radius:8px;
  color:var(--muted);
  background:transparent;
  font-size:12px;
  font-weight:600;
  padding:10px 14px;
  cursor:pointer
}
.pw-tabs button[aria-pressed=true] {
  background:var(--accent-soft);
  border-color:var(--accent-border);
  color:var(--accent-text)
}
.pw-search-row {
  display:flex;
  align-items:end;
  gap:14px
}
.pw-search-row label {
  display:grid;
  gap:7px;
  font-size:11px;
  font-weight:600;
  color:var(--text-3)
}
.pw-search-row label:first-child {
  flex:1;
  max-width:480px
}
.pw-search-row input,.pw-search-row select {
  min-height:42px;
  background:var(--surface);
  border:1px solid var(--border-strong);
  border-radius:8px;
  padding:10px 12px;
  font-size:13px;
  width:100%
}
.pw-search-row label:last-child {
  min-width:180px
}
.pw-note {
  font-size:12px;
  line-height:1.6;
  color:var(--muted)
}
.pw-result-count {
  font-size:11px;
  color:var(--muted);
  margin-top:-8px;
  margin-bottom:-10px
}
.pw-board {
  display:flex;
  overflow-x:auto;
  gap:14px;
  align-items:stretch;
  padding-bottom:14px;
  scroll-snap-type:x proximity
}
.pw-column {
  flex:0 0 270px;
  min-width:0;
  border-radius:14px;
  background:var(--surface-3);
  border:1px solid var(--border);
  padding:0 10px 10px;
  scroll-snap-align:start
}
.pw-column>header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 4px
}
.pw-column h3 {
  font-size:12px;
  font-weight:700
}
.pw-column>header span {
  font-size:11px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:6px;
  padding:2px 7px;
  color:var(--muted)
}
.pw-column-cards {
  display:grid;
  gap:12px;
  align-content:start;
  min-height:220px
}
.pw-column-empty {
  font-size:11px;
  color:var(--muted);
  text-align:center;
  padding:32px 12px;
  border:1px dashed var(--border-strong);
  border-radius:10px
}
.pw-product-card {
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--surface);
  overflow:hidden;
  box-shadow:var(--shadow-sm)
}
.pw-product-card[draggable=true] {
  cursor:grab
}
.pw-product-card:hover {
  border-color:var(--accent-border)
}
.pw-card-image {
  height:100px;
  width:100%;
  object-fit:cover;
  pointer-events:none;
  background:var(--surface-2)
}
.pw-card-body {
  padding:15px
}
.pw-product-title {
  border:0;
  padding:0;
  background:transparent;
  font-size:14px!important;
  font-weight:700!important;
  text-align:left;
  line-height:1.5;
  color:var(--text);
  cursor:pointer;
  overflow-wrap:anywhere
}
.pw-product-title:hover {
  color:var(--accent-text);
  text-decoration:underline
}
.pw-card-tagline {
  font-size:11px;
  color:var(--muted);
  line-height:1.5;
  margin-top:5px
}
.pw-owner {
  font-size:11px;
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  margin-top:14px
}
.pw-milestone {
  display:grid;
  gap:5px;
  margin-top:16px
}
.pw-milestone>span {
  font-size:10px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.05em
}
.pw-milestone>strong {
  font-size:12px;
  font-weight:600;
  line-height:1.5;
  overflow-wrap:anywhere
}
.pw-milestone>small {
  font-size:11px;
  color:var(--muted)
}
.pw-milestone>.pw-overdue {
  color:var(--bad);
  font-weight:600
}
.pw-blocker {
  margin-top:14px;
  padding:10px 12px;
  background:rgba(180,83,9,.06);
  border:1px solid rgba(180,83,9,.18);
  border-radius:8px;
  font-size:11px;
  color:var(--warn)
}
.pw-blocker p {
  line-height:1.6;
  margin-top:4px;
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.pw-blocker-label {
  font-size:10px;
  font-weight:600;
  color:var(--warn)
}
.pw-card-footer {
  display:flex;
  gap:8px;
  align-items:end;
  justify-content:space-between;
  border-top:1px solid var(--border);
  margin-top:16px;
  padding-top:12px
}
.pw-stage-select {
  display:grid;
  gap:5px;
  min-width:0;
  max-width:180px
}
.pw-stage-select>span {
  font-size:10px;
  color:var(--muted)
}
.pw-stage-select select {
  font-size:11px;
  min-height:36px;
  padding:7px 24px 7px 8px
}
.pw-detail-button {
  background:none;
  border:0;
  border-radius:6px;
  color:var(--accent-text);
  font-size:11px!important;
  cursor:pointer;
  min-height:36px;
  padding:6px
}
.pw-stage-label {
  font-size:11px;
  color:var(--muted)
}
.pw-dragging {
  opacity:.45
}
.pw-drop-target {
  border-color:var(--accent);
  background:var(--accent-soft)
}
.pw-table-scroll {
  overflow:auto;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px
}
.pw-table {
  min-width:750px
}
.pw-table td {
  vertical-align:top;
  max-width:280px
}
.pw-table td>small {
  display:block;
  margin-top:6px;
  font-size:11px;
  color:var(--muted)
}
.pw-table td>p {
  font-size:12px;
  line-height:1.5;
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.pw-table .pw-milestone {
  margin:0
}
.pw-table .pw-milestone>span {
  display:none
}
.pw-table .pw-stage-select>span {
  display:none
}
.pw-empty {
  padding:46px 28px;
  background:var(--surface);
  border:1px dashed var(--border-strong);
  border-radius:14px;
  color:var(--muted);
  font-size:13px;
  width:100%;
  text-align:center
}
.pw-empty h3,.pw-empty h2 {
  color:var(--text);
  font-size:19px;
  margin-bottom:12px
}
.pw-empty .btn {
  margin-top:18px
}
.pw-loading {
  height:400px
}
.pw-dialog {
  width:min(740px,calc(100% - 32px));
  max-height:90dvh;
  margin:auto;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--shadow-lg);
  padding:0
}
.pw-dialog::backdrop {
  background:rgba(15,27,45,.4)
}
.pw-dialog-head {
  padding:24px 28px;
  border-bottom:1px solid var(--border);
  background:var(--surface)
}
.pw-dialog-head h2 {
  font-size:22px;
  letter-spacing:-.4px;
  margin:5px 0
}
.pw-dialog-head p:not(.pw-eyebrow) {
  font-size:12px;
  color:var(--muted);
  line-height:1.6
}
.pw-detail-body,.pw-form-body {
  padding:24px 28px;
  display:grid;
  gap:24px
}
.pw-detail-body h3 {
  font-size:13px;
  margin-bottom:10px
}
.pw-detail-body p,.pw-detail-body li {
  font-size:13px;
  color:var(--text-3);
  line-height:1.7
}
.pw-detail-body ul {
  padding-left:20px
}
.pw-detail-image {
  width:100%;
  max-height:260px;
  object-fit:contain;
  background:var(--surface-2);
  border-radius:12px
}
.pw-detail-work {
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px;
  background:var(--surface-2)
}
.pw-detail-work .pw-owner {
  margin-top:0
}
.pw-detail-work .pw-milestone>strong {
  font-size:15px
}
.pw-detail-work>.pw-note {
  margin-top:14px
}
.pw-prices {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px
}
.pw-prices>div {
  display:grid;
  gap:8px;
  padding:15px;
  background:var(--surface-2);
  border:1px solid var(--border);
  border-radius:10px
}
.pw-prices span {
  font-size:11px;
  color:var(--muted)
}
.pw-prices strong {
  font-size:21px
}
.pw-detail-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.pw-detail-facts dt {
  font-size:11px;
  color:var(--muted);
  margin-bottom:8px
}
.pw-detail-facts dd {
  font-size:13px
}
.pw-preserve-lines {
  white-space:pre-wrap
}
.pw-dialog-actions {
  display:flex;
  justify-content:end;
  gap:10px;
  padding:20px 28px;
  border-top:1px solid var(--border);
  background:var(--surface-2);
  position:sticky;
  bottom:0
}
.pw-dialog-actions .btn-danger {
  margin-right:auto
}
.pw-form-body fieldset {
  border:0;
  min-width:0;
  display:grid;
  gap:14px
}
.pw-form-body legend {
  font-size:14px;
  font-weight:700;
  margin-bottom:16px
}
.pw-form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}
.pw-form-body label {
  display:grid;
  gap:7px;
  font-size:11px;
  color:var(--text-3);
  font-weight:600
}
.pw-form-body input,.pw-form-body textarea,.pw-form-body select {
  font-size:13px;
  font-weight:400
}
.pw-form-body input[type=file] {
  font-size:12px
}
.pw-full {
  grid-column:1/-1
}
.pw-form-error {
  padding:12px 15px;
  background:rgba(220,38,38,.06);
  border:1px solid rgba(220,38,38,.2);
  border-radius:8px;
  font-size:13px;
  color:var(--bad)
}
.pw-form-error[hidden] {
  display:none
}
.pw-image-preview {
  height:150px;
  border:1px dashed var(--border-strong);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:12px;
  background:var(--surface-2);
  overflow:hidden
}
.pw-image-preview img {
  max-width:100%;
  height:100%;
  object-fit:contain
}
.pw-form-body .pw-remove-image {
  display:flex;
  align-items:center;
  gap:8px
}
.pw-remove-image input {
  width:auto
}
.product-workspace button:disabled {
  opacity:.55;
  cursor:wait
}
@media(max-width:700px) {
  .pw-heading {
    align-items:start
  }
  .pw-heading h2 {
    font-size:24px
  }
  .pw-heading>.btn {
    padding:10px;
    font-size:12px;
    white-space:nowrap
  }
  .pw-stats {
    grid-template-columns:1fr 1fr;
    gap:8px
  }
  .pw-stats button {
    padding:14px
  }
  .pw-stats strong {
    font-size:23px
  }
  .pw-stats small {
    font-size:10px
  }
  .pw-search-row {
    flex-direction:column;
    align-items:stretch
  }
  .pw-search-row label:first-child {
    max-width:none
  }
  .pw-tabs button {
    padding:9px 10px;
    font-size:11px
  }
  .pw-column {
    flex-basis:270px;
    max-width:85vw
  }
  .pw-dialog-head,.pw-detail-body,.pw-form-body {
    padding:20px
  }
  .pw-dialog-head h2 {
    font-size:19px
  }
  .pw-form-grid {
    grid-template-columns:1fr
  }
  .pw-full {
    grid-column:auto
  }
  .pw-prices {
    gap:8px
  }
  .pw-prices>div {
    padding:10px
  }
  .pw-prices strong {
    font-size:17px
  }
  .pw-dialog-actions {
    padding:16px 20px
  }
  .pw-detail-facts {
    grid-template-columns:1fr
  }
}
@media(prefers-reduced-motion:reduce) {
  .product-workspace * {
    scroll-behavior:auto;
    transition:none!important
  }
}
@media(max-width:650px) {
  .pw-table {
    min-width:0;
    display:block
  }
  .pw-table thead {
    display:none
  }
  .pw-table tbody {
    display:block
  }
  .pw-table tr {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    padding:20px;
    border-bottom:1px solid var(--border)
  }
  .pw-table tr:last-child {
    border-bottom:0
  }
  .pw-table td {
    display:block;
    max-width:none;
    padding:0;
    border:0
  }
  .pw-table td:first-child {
    grid-column:1/-1
  }
  .pw-table td:nth-child(2) {
    grid-row:2;
    grid-column:1
  }
  .pw-table td:nth-child(3),.pw-table td:nth-child(4) {
    grid-column:1/-1
  }
  .pw-table td:nth-child(5) {
    grid-row:2;
    grid-column:2
  }
  .pw-table td:nth-child(2):before {
    content:'Owner';
    display:block;
    font-size:10px;
    color:var(--muted);
    margin-bottom:8px
  }
  .pw-table .pw-stage-select>span,.pw-table .pw-milestone>span {
    display:block
  }
  .pw-table tr:hover td {
    background:transparent
  }
  .pw-table-scroll {
    overflow:visible
  }
}
