 :root {
 --font-ui:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Inter","PingFang SC","Hiragino Sans GB","HarmonyOS Sans SC","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",sans-serif;
 --font-mono:"JetBrains Mono","IBM Plex Mono","SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
 --text-xs:12px; --text-sm:13px; --text-base:14px; --text-md:16px; --text-lg:18px; --text-xl:22px;
 --bg-app:#FFFFFF; --bg-rail:#F8F9FA; --bg-canvas:#F3F4F6; --bg-surface:#FFFFFF;
 --bg-subtle:#F4F5F7; --bg-hover:rgba(15,23,42,.045); --bg-active:rgba(15,23,42,.08);
 --ink-primary:#111315; --ink-secondary:#4B5563; --ink-muted:#6B7280;
 --border-hairline:rgba(15,23,42,.08); --border-strong:rgba(15,23,42,.15);
 --desk:var(--bg-canvas); --tray:var(--bg-rail); --paper:var(--bg-surface); --manila:var(--bg-surface); --ledger:var(--bg-surface); --ink:var(--ink-primary); --muted:var(--ink-secondary); --line:var(--border-hairline);
 background:var(--bg-app); color:var(--ink); font-family:var(--font-ui); font-size:var(--text-base); font-variant-numeric:tabular-nums;
}


* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
}
button,
a,
input,
textarea,
select {
  -webkit-tap-highlight-color: transparent;
}
button,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}
button:hover,
.button:hover {
  background: var(--bg-hover);
}
.primary {
  background:  #111315;
  color: var(--bg-surface);
  border-color:  #111315;
}
.primary:hover {
  background: var(--ink-secondary);
}
a {
  color: inherit;
  text-decoration: none;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--ink-secondary);
  outline-offset: 3px;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1 {
  font-size: 26px;
  font-weight: 500;
}
h2 {
  font-size: 20px;
}
h3 {
  font-size: 14px;
  font-weight: 600;
}
p {
  line-height: 1.65;
}
small,
sup {
  font-size: 12px;
}
svg {
  flex-shrink: 0;
}
input:not([type="checkbox"]),
textarea,
select {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--border-hairline);
  background: #FAFAFB;
  padding: 8px 11px;
  line-height: 1.5;
  border-radius: 8px;
}
textarea {
  resize: vertical;
  overflow: hidden;
}
label {
  display: block;
  font-size: 12px;
  color: var(--muted);
}
label input,
label textarea {
  display: block;
  font-size: 14px;
  color: var(--ink);
}
input[type="checkbox"] {
  appearance: none;
  width: 16px;
  height: 16px;
  border: 1px solid var(--ink-secondary);
  border-radius: 1px;
  vertical-align: middle;
  flex-shrink: 0;
  cursor: pointer;
}
input[type="checkbox"]:checked {
  background: var(--ink);
  box-shadow: inset 0 0 0 3px var(--paper);
}
.studio-bar {
  height: 48px;
  padding: 0 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-bottom: 1px solid  #1113151f;
  background: var(--bg-surface);
  backdrop-filter: blur(12px);
  position: relative;
  z-index: 2;
}
.identity,
.actions,
.studio-bar nav {
  display: flex;
  align-items: center;
  gap: 12px;
}
.identity {
  font-size: 13px;
}
.identity strong {
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}
.identity > span:not(.stamp) {
  color: var(--muted);
}
.studio-bar nav {
  height: 48px;
  gap: 10px;
  white-space: nowrap;
}
.studio-bar nav a {
  height: 48px;
  display: flex;
  align-items: center;
  border-bottom: 2px solid transparent;
  color: var(--muted);
}
.studio-bar nav a.active {
  border-bottom-color: var(--ink);
  color: var(--ink);
}
.actions {
  gap: 7px;
}
.actions button {
  font-size: 12px;
  min-height: 32px;
  padding: 5px 9px;
}
.stamp {
  display: inline-block;
  border: 1px solid currentColor;
  padding: 2px 7px;
  font-size: 12px;
  line-height: 1.4;
  border-radius: 1px;
  color: #263238;
}
.stamp.ecom {
  color: var(--ink-secondary);
}
.stamp.trad {
  color: var(--ink-secondary);
}
.confirmation {
  display: grid;
  grid-template-columns: 46% 54%;
  height: calc(100vh - 48px);
}
.evidence-mat {
  background: var(--tray);
  padding: 30px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.photo-view {
  min-height: 260px;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.zoom-photo {
  border: 0;
  padding: 0;
  max-height: 390px;
  width: 100%;
  height: 100%;
  background: transparent;
}
.zoom-photo img {
  width: 100%;
  height: 100%;
  max-height: 390px;
  object-fit: contain;
  box-shadow: 0 2px 5px  #11131525;
}
.thumbnails {
  display: flex;
  gap: 9px;
  align-items: center;
  flex-wrap: wrap;
}
.thumbnails button:not([data-action]) {
  padding: 3px;
  border-radius: 1px;
}
.thumbnails img {
  width: 64px;
  height: 49px;
  object-fit: cover;
  display: block;
}
.selected {
  outline: 1px solid var(--ink);
  outline-offset: 2px;
}
.dropzone {
  display: flex;
  gap: 10px;
  align-items: center;
  border: 1px dashed var(--ink-secondary);
  padding: 12px;
  color: var(--muted);
}
.dragging {
  background: var(--paper);
}
.notes {
  margin-top: auto;
}
.specification {
  padding: 30px 42px;
  overflow: auto;
}
.spec-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 28px;
}
.spec-title h1 {
  font-family: var(--font-ui);
}
.spec-title span {
  font-size: 12px;
  color: var(--muted);
}
.spec-row {
  border-top: 1px solid rgba(10,10,10,.08);
  padding: 20px 0;
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 14px;
}
.row-index {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-family: var(--font-ui);
  color: var(--muted);
  font-size: 12px;
}
.spec-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 22px;
}
.spec-fields > label:first-child {
  grid-column: 1/-1;
}
.spec-fields textarea {
  border-bottom: 0;
  padding: 3px 0;
  min-height: 28px;
}
.binding {
  display: flex;
  gap: 7px;
  grid-column: 1/-1;
  margin-top: 5px;
}
.binding button {
  padding: 0;
  border: 0;
  border-radius: 1px;
  min-height: 32px;
}
.binding img {
  width: 40px;
  height: 32px;
  object-fit: cover;
}
.number-fields {
  display: flex;
  gap: 12px;
  grid-column: 1/-1;
  align-items: end;
}
.number-fields label {
  flex: 1;
  min-width: 0;
}
.line-subtotal {
  white-space: nowrap;
  padding: 8px 0;
  font-size: 12px;
}
.pending {
  display: flex;
  gap: 7px;
  align-items: center;
}
.spec-total {
  display: flex;
  justify-content: space-between;
  padding: 25px 0;
  border-top: 3px double var(--ink);
  margin-top: 25px;
}
.desk {
  min-height: calc(100vh - 48px);
  padding: 40px 30px;
}
.paper-studio {
  display: flex;
  gap: 25px;
  align-items: flex-start;
  max-width: 1600px;
  margin: 0 auto;
}
.paper {
  position: relative;
  background: var(--paper);
  border-radius: 1px;
  box-shadow:
    0 1px 2px  #11131538,
    0 4px 5px  #1113150c;
  padding: 25px 24px 20px;
  min-width: 0;
}
.sheet-0 {
  flex: 1.45;
  min-height: 720px;
}
.sheet-1 {
  flex: 0.95;
  background: var(--manila);
  margin-top: 64px;
  min-height: 480px;
}
.sheet-2 {
  flex: 0.85;
  background: var(--ledger);
  margin-top: 18px;
  min-height: 660px;
}
.print-header {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 9px;
  color: var(--muted);
}
.paper h2 {
  font-family: var(--font-ui);
  font-size: 28px;
  font-weight: 600;
  margin: 19px 0 22px;
}
.paper p {
  font-size: 12px;
  line-height: 1.65;
  margin-top: 5px;
}
.paper h3 {
  line-height: 1.6;
}
.engineering-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  font-size: 12px;
  margin-bottom: 22px;
}
.engineering-grid span {
  padding: 8px 2px;
}
.sop-steps {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 18px;
}
.document-row {
  position: relative;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.document-row[role="button"],
tr[data-revise] {
  cursor: pointer;
}
.document-row[role="button"]:hover,
tr[data-revise]:hover {
  outline: 1px solid var(--ink-secondary);
  outline-offset: 3px;
}
.sop-steps .document-row {
  padding: 0 0 12px;
}
.step-number {
  font-family: var(--font-ui);
  font-size: 12px;
  margin-bottom: 7px;
}
.sop-steps img {
  width: 100%;
  height: 92px;
  object-fit: cover;
  margin-bottom: 5px;
}
.spec-callout {
  color: var(--muted);
}
.punch {
  position: absolute;
  top: 14px;
  left: 50%;
  width: 9px;
  height: 9px;
  background: var(--desk);
  border-radius: 50%;
  box-shadow: inset 0 1px 2px  #11131540;
}
.tool-photo {
  width: 100%;
  height: 155px;
  object-fit: cover;
}
.tool-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 15px;
}
.tool-grid h3 {
  font-size: 12px;
}
.paper-note {
  margin-top: 20px !important;
  color: var(--muted);
}
.check-head {
  font-size: 12px;
  padding: 9px 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.inspection {
  display: flex;
  gap: 10px;
  padding: 14px 0;
}
.inspection h3 {
  font-size: 12px;
}
.square {
  display: block;
  width: 13px;
  height: 13px;
  border: 1px solid var(--ink-secondary);
  flex-shrink: 0;
  margin-top: 4px;
}
.signature {
  font-size: 12px;
  line-height: 2.2;
  margin-top: 28px;
}
.paper-footer {
  font-size: 12px;
  display: flex;
  justify-content: space-between;
  border-top: 1px solid var(--ink);
  margin-top: 24px;
  padding-top: 10px;
  color: var(--muted);
}
.ecom .sheet-0 {
  flex: 1.35;
}
.ecom .sheet-1 {
  flex: 0.9;
  margin-top: 35px;
  min-height: 650px;
}
.ecom .sheet-2 {
  flex: 1.15;
  margin-top: 80px;
  min-height: 600px;
}
.editorial-photo {
  width: calc(100% + 48px);
  margin-left: -24px;
  height: 268px;
  object-fit: cover;
}
.story-copy h3 {
  font-family: var(--font-ui);
  font-size: 21px;
}
.shelf-diagram {
  display: flex;
  border-bottom: 5px double var(--ink-secondary);
  align-items: end;
  padding: 12px 8px 0;
  margin-bottom: 24px;
}
.shelf-diagram img {
  width: 50%;
  height: 100px;
  object-fit: contain;
}
.paper table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.paper th,
.paper td {
  padding: 9px 4px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.shelf-index {
  font-size: 12px;
  color: var(--muted);
}
.poster-heading {
  font-family: var(--font-ui);
  font-size: 39px;
  line-height: 1.35;
  margin: 28px 0;
}
.crop-frame {
  margin-top: 20px;
  border: 1px solid var(--ink);
  padding: 5px;
}
.crop-frame img {
  width: 100%;
  height: 135px;
  object-fit: cover;
}
.trad .sheet-0 {
  flex: 1.45;
}
.trad .sheet-1 {
  flex: 0.95;
  margin-top: 84px;
  min-height: 540px;
}
.trad .sheet-2 {
  flex: 1.05;
  margin-top: 24px;
  min-height: 650px;
}
.quote th:not(:first-child),
.quote td:not(:first-child) {
  text-align: right;
  white-space: nowrap;
}
.quote h3 {
  font-size: 12px;
}
.quote p {
  color: var(--muted);
}
.quote-total {
  display: flex;
  justify-content: space-between;
  border-top: 4px double var(--ink);
  padding-top: 17px;
  margin-top: 22px;
  align-items: baseline;
  font-size: 12px;
}
.quote-total strong {
  font-family: var(--font-ui);
  font-size: 27px;
}
.timeline-scale {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--ink);
}
.timeline-track {
  height: 16px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin: 14px 0;
}
.timeline-track span {
  display: block;
  height: 9px;
  background: var(--ink-secondary);
}
.salutation {
  margin: 25px 0 !important;
}
.versions {
  display: flex;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
}
.versions button {
  border: 0;
  border-radius: 0;
}
.versions .active {
  background: var(--ink);
  color: var(--bg-surface);
}
.with-drawer {
  padding-right: 350px;
}
.drawer-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
}
.drawer-heading h2 {
  font-size: 20px;
}
.presets {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-bottom: 24px;
}
.presets button {
  white-space: normal;
  text-align: left;
  justify-content: flex-start;
  font-size: 12px;
  line-height: 1.6;
}
.with-drawer .paper-studio {
  gap: 16px;
}
.with-drawer .paper {
  padding: 18px 15px;
}
.with-drawer .paper h2 {
  font-size: 22px;
}
.with-drawer .sop-steps {
  gap: 15px 10px;
}
.with-drawer .sop-steps img {
  height: 70px;
}
.with-drawer .tool-grid {
  grid-template-columns: 1fr;
}
.with-drawer .sheet-1 {
  flex: 0.95;
}
.with-drawer .sheet-2 {
  flex: 1;
}
.with-drawer .sheet-0 {
  flex: 1.45;
}
.changed {
  border-bottom: 2px solid var(--ink-secondary);
  padding-inline-start: 7px !important;
}
.change-badge {
  display: block;
  font-size: 12px;
  color: #164e35;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
  margin-bottom: 12px;
}
del {
  color: #8c2d19;
  text-decoration-thickness: 1px;
}
ins {
  color: #164e35;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.gate {
  padding: 100px 60px;
}
.gate h1 {
  margin-bottom: 25px;
}
.gate button,
.gate a {
  margin-right: 10px;
}
dialog {
  max-width: 600px;
  width: 90%;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: var(--paper);
  padding: 30px;
  box-shadow: 0 5px 20px  #11131530;
  color: var(--ink);
}
dialog::backdrop {
  background:  #11131565;
}
dialog h2 {
  margin-bottom: 24px;
}
dialog label {
  margin: 20px 0;
}
.dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 25px;
}
.inspector-image {
  width: 100%;
  max-height: 70vh;
  object-fit: contain;
}
#feedback {
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 10;
  background: var(--ink);
  color: var(--bg-surface);
  padding: 14px 20px;
  font-size: 14px;
  max-width: 600px;
}
.readonly .document-row:hover {
  outline: 0;
}
@media (max-width: 1000px) {
  .studio-bar {
    padding: 0 12px;
  }
  .studio-bar nav {
    display: none;
  }
  .identity strong {
    max-width: 150px;
  }
  .paper-studio {
    gap: 15px;
  }
  .paper {
    padding: 20px 15px;
  }
  .confirmation {
    grid-template-columns: 42% 58%;
  }
  .specification {
    padding: 24px;
  }
  .archive {
    padding: 35px 20px;
  }
  .contact-strip {
    width: 85px;
  }
  .dossier-title {
    gap: 10px;
  }
}
@media (max-width: 700px) {
  .studio-bar {
    height: auto;
    min-height: 48px;
    flex-wrap: wrap;
    padding: 9px;
  }
  .identity strong {
    max-width: 180px;
  }
  .actions {
    flex-wrap: wrap;
  }
  .confirmation {
    display: block;
    height: auto;
  }
  .evidence-mat {
    height: 550px;
  }
  .specification {
    overflow: visible;
  }
  .paper-studio {
    display: block;
  }
  .paper {
    margin: 20px 0;
    min-height: 0;
  }
  .desk {
    padding: 15px;
  }
  .with-drawer {
    padding-right: 15px;
    padding-bottom: 400px;
  }
  .ledger-head {
    display: none;
  }
  .dossier {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .dossier > svg {
    display: none;
  }
  .archive-heading {
    flex-wrap: wrap;
  }
  .archive-date {
    margin-left: 0;
  }
  .spec-fields {
    grid-template-columns: 1fr;
  }
  .spec-fields > label {
    grid-column: 1/-1;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto;
  }
}

body { background: var(--desk); }
.job-title { max-width: 260px; font-weight: 500; }
.identity .job-title { padding: 3px 0; border-bottom-color: transparent; }
.identity .job-title:hover, .identity .job-title:focus { border-bottom-color: var(--ink); }
.archive { padding-top: 42px; }
.archive-heading { margin-bottom: 24px; }
.dossier { min-height: 110px; padding: 16px 20px; }
.dossier h2 { margin-bottom: 8px; }
.dossier p { max-width: 220px; line-height: 1.6; }
.archive-foot { padding-top: 12px; }
.confirmation.capture { grid-template-columns: 1fr; }
.capture .evidence-mat { padding-inline: max(30px, calc((100vw - 1000px)/2)); }
.capture .specification[hidden] { display: none; }
.desk { padding: 26px 24px; }
.paper-studio { gap: 20px; }
.paper { padding: 20px 18px 16px; overflow-wrap: anywhere; }
.paper h2 { font-size: 26px; margin: 14px 0 16px; }
.paper h3 { line-height: 1.45; }
.paper p { line-height: 1.5; margin-top: 4px; }
.paper-footer { margin-top: 18px; padding-top: 8px; }
.sheet-0 { min-height: 0; }
.sheet-1 { min-height: 0; }
.sheet-2 { min-height: 0; }
.mfg .sheet-0 { flex: 1.45; }
.mfg .sheet-1 { flex: 1.05; margin-top: 80px; }
.mfg .sheet-2 { flex: .85; margin-top: 18px; }
.engineering-grid { margin-bottom: 14px; }
.engineering-grid span { padding: 5px 2px; }
.sop-steps { gap: 13px 14px; }
.sop-steps img { height: 66px; margin-bottom: 3px; }
.sop-steps .document-row { padding-bottom: 9px; }
.step-number { margin-bottom: 4px; }
.tool-strip { display: flex; gap: 4px; }
.tool-strip img { width: calc((100% - 8px)/3); height: 44px; object-fit: cover; }
.tool-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 10px; }
.tool-grid .document-row { padding: 9px 0; }
.tool-grid h3 { font-size: 12px; }
.mfg .sheet-1 .paper-note { display: none; }
.mfg .sheet-1 .paper-footer { margin-top: 12px; }
.inspection { padding: 11px 0; gap: 8px; }
.signature { margin-top: 18px; line-height: 1.9; }
.ecom .sheet-0, .ecom .sheet-1, .ecom .sheet-2 { min-height: 0; }
.ecom .sheet-1 { margin-top: 30px; }
.ecom .sheet-2 { margin-top: 54px; }
.editorial-photo { width: calc(100% + 36px); margin-left: -18px; height: 210px; }
.story-copy h3 { font-size: 19px; }
.shelf-diagram { margin-bottom: 12px; padding-top: 0; }
.shelf-diagram img { height: 76px; }
.poster-art { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 14px; margin: 0 -18px 8px; }
.poster-art img { width: 100%; height: 176px; object-fit: cover; object-position: 40% 50%; }
.poster-heading { font-size: 29px; margin: 0; line-height: 1.3; }
.ecom .sheet-2 .print-header { display: none; }
.ecom .sheet-2 h2 { font-size: 16px; margin-top: 0; }
.quote th:nth-child(2), .quote td:nth-child(2) { text-align: left; white-space: normal; }
.quote td, .quote th { padding: 8px 3px; }

.with-drawer { padding: 24px 18px 24px 332px; }
.with-drawer .paper-studio { width: 100%; min-width: 0; gap: 14px; }
.with-drawer .paper { padding: 15px 12px; }
.with-drawer .sheet-0 { flex: 1.45; }
.with-drawer .sheet-1 { flex: 1.05; }
.with-drawer .sheet-2 { flex: 1; }
.with-drawer .paper h2 { font-size: 21px; margin: 12px 0; }
.with-drawer .sop-steps { gap: 11px 9px; }
.with-drawer .sop-steps img { height: 48px; }
.with-drawer .sop-steps h3 { font-size: 12px; }
.with-drawer .tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 8px; }
.with-drawer .mfg .sheet-1 { margin-top: 55px; }
.with-drawer .engineering-grid { gap: 0 4px; }
.with-drawer .inspection { padding: 9px 0; }
.with-drawer .paper-footer { margin-top: 14px; }
del, ins { overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .with-drawer { padding: 15px; }
}
.mfg .sheet-1 { padding: 14px; }
.mfg .sheet-1 h2 { font-size: 20px; margin: 8px 0; }
.mfg .sheet-1 .print-header { padding-bottom: 5px; }
.mfg .sheet-1 .tool-strip img { height: 32px; }
.mfg .sheet-1 .tool-grid .document-row { padding: 6px 0; }
.mfg .sheet-1 .paper-footer { margin-top: 10px; padding-top: 6px; }

.trad .sheet-1 { margin-top: 72px; }

.identity > a, .identity > span { flex-shrink: 0; white-space: nowrap; }
.identity input.job-title { width: 240px; flex: 0 1 240px; }

/* v3 workspace */

body { background:#fff; }
button,.button { border-radius:8px; }
button:hover,.button:hover { background:var(--bg-canvas); }
.primary { background:#171717; color:#fff; border-color:#171717; }
.primary:hover { background:#333; }
:focus-visible { outline-color:var(--ink-secondary); }
.app-shell { display:grid; grid-template-columns:248px minmax(0,1fr); min-height:100vh; }
.rail { background:var(--bg-rail); border-right:1px solid var(--line); padding:22px 16px; height:100vh; position:sticky; top:0; display:flex; flex-direction:column; gap:24px; overflow:auto; }
.rail-brand { display:flex; align-items:center; gap:6px; min-width:0; }
.rail-brand > svg { flex:0 0 auto; }
.rail-brand strong { font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; flex:1 1 auto; letter-spacing:0; }
.rail-brand button { padding:2px; min-height:26px; border:0; margin-left:auto; flex:0 0 auto; }
:root[lang="en"] .rail-brand strong { font-size:13px; letter-spacing:-.01em; }
.rail > button { justify-content:flex-start; background:#fff; }
.filters { display:flex; gap:2px; padding:0; margin:0; border:0; }
.filters button { border:0; padding:5px 9px; min-height:30px; font-size:12px; }
.filters .active,.session.active { background:#eceeef; color:var(--ink); }
.sessions { display:flex; flex-direction:column; gap:6px; }
.session { padding:12px 10px; border-radius:8px; }
.session:hover { background:#f0f0f0; }
.session strong { display:block; font-size:13px; font-weight:500; line-height:1.6; }
.session span { display:block; font-size:12px; color:var(--muted); margin-top:5px; }
.collapsed { grid-template-columns:64px minmax(0,1fr); }
.collapsed .rail { padding:22px 10px; }
.collapsed .rail-brand strong,.collapsed .filters { display:none; }
.collapsed .rail-brand { justify-content:center; }
.collapsed .rail-brand .brand-mark { display:block; margin:0 auto; }
.collapsed .rail-brand .btn-icon { position:absolute; top:10px; right:8px; }
.collapsed .rail > button { font-size:12px; padding:8px; }
.home { min-width:0; display:flex; justify-content:center; padding:100px 48px 60px; }
.home-center { width:100%; max-width:940px; }
.home h1 { text-align:center; font-size:32px; font-weight:550; margin:42px 0 36px; letter-spacing:-1px; }
.home-composer { display:block; border:1px solid var(--line); background:#fff; border-radius:16px; padding:20px; box-shadow:0 8px 28px rgba(0,0,0,.06); max-width:780px; margin:auto; }
.home-composer textarea { min-height:88px; border:0; resize:none; font-size:16px; }
.composer-actions { display:flex; align-items:center; gap:10px; }
.composer-actions select { width:90px; border:0; }
.composer-actions .primary { margin-left:auto; }
.home-photos { display:flex; gap:8px; }
.home-photos img { width:64px; height:64px; object-fit:cover; border-radius:8px; margin-bottom:12px; }
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:68px; }
.dossier.gallery-item { display:block; padding:0; border:0; background:transparent; min-height:0; }
.gallery-art { min-height:300px; position:relative; padding:0; }
.gallery-photo { width:100%; height:112px; object-fit:cover; display:block; }
.mini-fan { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; margin-top:24px; }
.mini-page { min-width:0; background:#fff; min-height:144px; padding:8px; border:1px solid var(--line); font-size:12px; overflow-wrap:anywhere; }
.mini-page:nth-child(2) { margin-top:6px; }
.mini-page:nth-child(3) { margin-top:12px; }
.mini-page b { display:block; margin-bottom:10px; line-height:1.5; }

.mini-rule { height:1px; background:var(--line); }
.gallery-item h2 { font-size:14px; margin:16px 0 5px; font-weight:550; }
.gallery-item > span { font-size:12px; color:var(--muted); }
.job-workspace { min-width:0; height:100vh; display:flex; flex-direction:column; }
.studio-bar { position:relative; height:auto; min-height:64px; background:#fff; border-bottom:1px solid var(--line); padding:12px 20px; gap:12px; flex-wrap:wrap; }
.studio-bar nav { display:none; }
.identity { min-width:0; gap:10px; }
.identity strong { max-width:none; }
.identity > a,.identity > span { display:none; }
.identity input.job-title { width:220px; }
.actions { gap:6px; margin-left:auto; flex-wrap:wrap; }
.actions button { font-size:12px; padding:7px 9px; }
.stamp { border:0; color:var(--muted); background:var(--bg-canvas); border-radius:6px; font-size:12px; }
.workspace-body { flex:1; min-height:0; display:grid; grid-template-columns:minmax(280px,32%) minmax(0,1fr); }
.interaction { padding:26px 22px 18px; display:flex; flex-direction:column; overflow:auto; border-right:1px solid var(--line); }
.interaction h2 { font-size:18px; margin-bottom:24px; }
.interaction .contact-strip { width:100%; display:flex; gap:7px; overflow:auto; }
.interaction .contact-strip button { padding:0; border:0; }
.interaction .contact-strip img { width:64px; height:76px; object-fit:cover; border-radius:8px; }
.raw-notes { margin-top:18px; font-size:13px; white-space:pre-wrap; }
.execution { padding:20px 0; margin:16px 0; list-style:none; border-top:1px solid var(--line); color:var(--muted); }
.execution li { display:flex; align-items:center; gap:10px; font-size:13px; padding:7px 0; }
.stream-bottom { margin-top:auto; }
.artifact-area { display:flex; flex-direction:column; min-width:0; overflow:hidden; background:var(--desk); }
.artifact-tabs { display:flex; gap:4px; padding:10px 16px; border-bottom:1px solid var(--line); background:#fff; flex-wrap:wrap; }
.artifact-tabs button,.artifact-tabs a { border:0; min-height:32px; font-size:12px; padding:7px 9px; border-radius:8px; }
.artifact-tabs .active { background:#eceeef; }
.desk,.with-drawer { padding:24px; overflow:auto; min-height:0; background:var(--desk); flex:1; }
.paper-studio { display:grid; grid-template-columns:1fr; max-width:850px; gap:24px; }
.paper { border:1px solid var(--line); border-radius:4px; background:#fff; box-shadow:0 8px 28px rgba(0,0,0,.06); padding:28px !important; margin:0 !important; min-height:0 !important; }
.paper[hidden] { display:none; }
.paper h2,.story-copy h3,.poster-heading { font-family:var(--font-ui); }
.paper h2 { font-size:25px !important; letter-spacing:-.5px; margin:18px 0 24px !important; }
.paper h3 { font-size:14px !important; }
.paper p { font-size:13px; line-height:1.7; }
.paper .print-header,.paper-footer { border-color:var(--line); }
.sop-steps img,.with-drawer .sop-steps img { height:110px; }
.tool-grid,.with-drawer .tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.tool-strip img,.mfg .sheet-1 .tool-strip img { height:90px; }
.punch { display:none; }
.editorial-photo { width:100%; margin:0; height:250px; border-radius:4px; }
.poster-art { margin:0 0 20px; }
.poster-heading { font-size:30px; }
.changed { border-inline-start:0; padding-inline-start:0 !important; }
.drawer-heading { margin-bottom:12px; }
.drawer-heading h2 { font-size:16px; margin:0; }
.presets { gap:6px; margin-bottom:12px; }
.presets button { padding:6px 8px; }
.changed-files { display:flex; flex-direction:column; margin-bottom:20px; }
.changed-files button { justify-content:flex-start; border:0; font-size:12px; }
.workspace-body.is-editor { display:block; }
.confirmation { display:grid; grid-template-columns:minmax(280px,32%) minmax(0,1fr); height:100%; }
.evidence-mat { background:#fff; padding:24px 22px; border-right:1px solid var(--line); overflow:auto; }
.photo-view { height:240px; background:var(--bg-canvas); border-radius:12px; }
.photo-view img { object-fit:cover; }
.thumbnails { margin-top:12px; flex-wrap:wrap; }
.thumbnails button { border-radius:8px; }
.evidence-mat .dropzone { border:1px dashed var(--line); border-radius:12px; padding:12px; margin-top:20px; font-size:12px; }
.notes { margin-top:24px; font-size:12px; }
.specification { background:var(--bg-canvas); padding:0 28px 28px; overflow:auto; }
.specification .artifact-tabs { margin:0 -28px 28px; }
.spec-title { border:0; margin-bottom:20px; }
.spec-title h1 { font-size:24px; }
.spec-row { background:#fff; padding:20px 0; margin:0; border-bottom:1px solid var(--line); }
.spec-fields { gap:16px; padding-right:20px; }
.spec-row:first-of-type { border-radius:12px 12px 0 0; }
.specification > button { margin-top:20px; }
.specification > .primary { display:flex; margin-left:auto; }
.confirmation.capture { grid-template-columns:minmax(280px,32%) minmax(0,1fr); }
.capture .evidence-mat { padding:24px 22px; }
.capture .specification[hidden] { display:block; }
.capture .specification .spec-title,.capture .specification > button:not(.primary) { display:none; }
dialog { background:#fff; border-radius:12px; }
#feedback { border-radius:8px; }
.single-document .paper-studio { max-width:900px; width:100%; }
.readonly .paper-studio { max-width:1100px; }
@media(min-width:1700px) { .workspace-body,.confirmation { grid-template-columns:380px minmax(0,1fr); } .artifact-area .paper-studio:not(:has(.paper[hidden])) { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:none; } }
@media(max-width:1100px) { .app-shell { grid-template-columns:64px minmax(0,1fr); } .rail { padding:22px 10px; } .rail-brand strong,.rail-brand > svg,.sessions,.rail .filters { display:none; } .rail > button { font-size:12px; padding:8px; } .workspace-body,.confirmation { grid-template-columns:280px minmax(0,1fr); } .home { padding:60px 30px; } .gallery { gap:12px; } }
@media(max-width:760px) { .workspace-body,.confirmation,.confirmation.capture { display:block; overflow:auto; } .interaction { max-height:none; } .evidence-mat { height:auto; } .specification { overflow:visible; padding-top:1px; } .job-workspace { height:auto; min-height:100vh; } .artifact-area { overflow:visible; } .gallery { grid-template-columns:1fr; } .home { padding:30px 20px; } .home h1 { font-size:24px; } .gallery-art { height:auto; min-height:300px; } .studio-bar { padding:12px; } .actions { margin:0; } .desk { overflow:visible; padding:16px; } .paper { padding:20px !important; } }
.artifact-area .paper-studio { grid-template-columns:repeat(3,minmax(220px,1fr)); max-width:none; }
.artifact-area .single-document .paper-studio { display:block; max-width:850px; }
.artifact-area .paper-studio .paper { padding:18px !important; }
.artifact-area .single-document .paper { padding:32px !important; }
.artifact-area .paper-studio .paper h2 { font-size:20px !important; }
.artifact-area .single-document .paper h2 { font-size:28px !important; }
.artifact-area .paper-studio .paper p { font-size:12px; line-height:1.65; }
.artifact-area .paper-studio .paper h3 { font-size:13px !important; }
.artifact-area .single-document .paper p { font-size:14px; }
.artifact-area .single-document .paper h3 { font-size:16px !important; }
.artifact-area .sop-steps { grid-template-columns:1fr; }
.artifact-area .single-document .sop-steps { grid-template-columns:1fr 1fr; }
.artifact-area .tool-grid,.artifact-area .with-drawer .tool-grid { grid-template-columns:1fr; }
.artifact-area .single-document .tool-grid { grid-template-columns:1fr 1fr; }
.photo-view { min-height:220px; flex:0 0 240px; overflow:hidden; }
.zoom-photo img { box-shadow:none; object-fit:cover; }
.evidence-mat { gap:12px; }
.spec-row { border-top:0; }
.spec-row .row-index { padding-left:12px; }
.specification .spec-title span::after { content:" · 待确认"; }
.home-composer.dragging { outline:2px solid var(--ink-secondary); }
@media(max-width:760px) { .artifact-area .paper-studio { display:block; } .artifact-area .paper-studio .paper { margin-bottom:20px !important; } }
.interaction .contact-strip { height:80px; flex-shrink:0; }
.interaction .contact-strip img { position:static; transform:none; border:0; box-shadow:none; display:block; }
.interaction .contact-strip button { flex-shrink:0; }
.studio-bar { backdrop-filter:none; }
.stamp.ecom,.stamp.trad { color:var(--muted); }
.filters button { border-radius:8px; }
.identity > .stamp { display:inline-block; }
.step-number,.row-index,.quote-total strong { font-family:var(--font-mono); }

/* v3 run2: intrinsic commercial sheets, optical overview and full-size reading. */
.paper { font-family:var(--font-ui); font-variant-numeric:tabular-nums lining-nums; overflow-wrap:anywhere; color:var(--ink-primary); }
.paper figure { margin:0; }
.paper table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:13px; }
.paper th { font-size:12px; font-weight:500; color:var(--ink-secondary); text-align:left; background:transparent; }
.paper td,.paper th { padding:13px 8px; vertical-align:top; border-bottom:1px solid var(--line); white-space:normal; }
.paper img { display:block; width:100%; object-fit:cover; }
.artifact-area .paper-studio { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; align-items:start; }
.artifact-area .paper-studio .paper { width:640px; padding:32px !important; zoom:1; border-radius:0; }
.artifact-area .paper-studio .paper h2 { font-size:32px !important; margin:22px 0 28px !important; font-weight:750; }
.artifact-area .paper-studio .paper h3 { font-size:15px !important; }
.artifact-area .paper-studio .paper p { font-size:13px; line-height:1.75; }
.artifact-area .single-document .paper-studio { max-width:900px; margin:auto; }
.artifact-area .single-document .paper { width:100%; zoom:1; }
.paper .print-header { font-family:var(--font-mono); font-size:12px; border-bottom:1px solid var(--ink-primary); }
.paper-footer { font-family:var(--font-mono); font-size:12px; border-top:1px solid var(--line); }
.engineering-grid { font-family:var(--font-mono); border-top:0; border-bottom:1px solid var(--line); gap:0 20px; }
.artifact-area .sop-steps,.sop-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 20px; }
.step-top { display:flex; gap:10px; align-items:flex-start; min-height:52px; }
.step-number { display:flex; align-items:center; justify-content:center; width:30px; height:30px; flex-shrink:0; background:#202626; color:white; font-family:var(--font-mono); }
.sop-steps figure { padding:5px; border:1px solid var(--line); background:white; }
.artifact-area .sop-steps img,.sop-steps img,.with-drawer .sop-steps img { height:128px; margin:0; }
.material-tags { display:flex; flex-wrap:wrap; gap:5px; margin:9px 0; }
.material-tags span { font-size:12px; padding:3px 7px; border:1px solid #d7d9d9; }
.qc-line { border-top:1px solid var(--line); padding-top:8px; }
.qc-line b { font-family:var(--font-mono); margin-right:5px; }
.mfg .sheet-1 { background:var(--bg-surface); }
.kit-code { display:flex; justify-content:space-between; align-items:center; font:12px var(--font-mono); border-bottom:1px solid #bbb; padding-bottom:16px; }
.barcode { width:140px; height:30px;  }
.tool-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:22px 0; }
.tool-strip figure { min-width:0; }
.tool-strip img,.mfg .sheet-1 .tool-strip img { width:100%; height:110px; }
.paper figcaption { font-size:12px; margin-top:7px; color:var(--ink-secondary); }
.bom th:first-child { width:10%; }
.bom th:nth-child(2) { width:36%; }
.bom th:last-child { width:12%; }
.kit-release { display:flex; justify-content:space-between; border-top:1px solid #aaa; padding-top:20px; margin-top:35px; font-size:12px; }
.mfg .sheet-2 { max-width:640px; }
.qa-summary { display:flex; gap:50px; border-block:1px solid var(--line); padding:20px 0; margin-bottom:20px; }
.qa-summary strong { display:block; font:32px var(--font-mono); }
.qa-summary span { font-size:12px; color:var(--ink-secondary); }
.qa-table th:nth-child(1) { width:31%; }
.qa-table th:nth-child(2) { width:29%; }
.qa-table th:nth-child(3) { width:23%; }
.square { display:inline-block; width:13px; height:13px; border:1px solid var(--ink-secondary); vertical-align:middle; margin:0; }
.record-line { display:block; height:27px; border-bottom:1px solid #bbb; }
.qa-signoff { margin-top:35px; padding-top:18px; border-top:2px solid #202626; }
.qa-signoff p { margin-top:15px; }
.ecom .sheet-0 { background:var(--bg-surface); }
.lookbook-hero { display:grid; grid-template-columns:3fr 2fr; align-items:end; gap:22px; }
.lookbook-hero img { height:320px; }
.paper .editorial-title { font-family:var(--font-ui); font-size:28px !important; font-weight:400; line-height:1.55; }
.fragrance-grid { display:grid; grid-template-columns:repeat(3,1fr); margin:26px 0; border-block:1px solid var(--border-strong); }
.fragrance-grid > div { padding:14px 8px; font-size:12px; color:var(--ink-secondary); }
.fragrance-grid strong { display:block; color:var(--ink-primary); font-weight:500; margin-top:8px; }
.story-copy .document-row { display:grid; grid-template-columns:40px 1fr; padding:20px 0; gap:10px; }
.story-number { font:12px var(--font-mono); color:var(--ink-secondary); padding-top:5px; }
.legal-copy { color:var(--ink-secondary); }
.planogram-photos { display:grid; grid-template-columns:3fr 2fr; gap:12px; }
.planogram-photos img { height:220px; }
.sku-box { display:flex; justify-content:space-between; gap:20px; padding:12px 0; margin:16px 0; font-size:12px; }
.retail-zones .document-row { display:grid; grid-template-columns:44px 1fr; gap:14px; padding:22px 0; }
.zone-number { font:26px var(--font-mono); color:#777; }
.retail-zones h3 { margin-bottom:10px; }
.retail-zones strong { font-size:13px; font-weight:500; }
.kv-frame { position:relative; border:8px solid var(--bg-subtle); margin-bottom:22px; }
.kv-frame img { height:300px; object-position:50% 60%; }
.kv-lockup { padding:20px; background:var(--bg-subtle); font-size:28px; line-height:1.45; font-weight:600; letter-spacing:1px; }
.copy-lockup .document-row { display:grid; grid-template-columns:70px 1fr; gap:12px; padding:16px 0; }
.copy-lockup .document-row > span { font-size:12px; color:var(--ink-secondary); padding-top:3px; }
.compliance-redline { margin-top:30px; padding-top:15px; border-top:2px solid #8c2d19; color:#8c2d19; }
.compliance-redline .document-row { border:0; padding:3px 0; }
.schedule-meta { display:flex; justify-content:space-between; font:12px var(--font-mono); padding:0 0 18px; }
.paper .quote td,.paper .quote th { text-align:left; padding:16px 5px; }
.paper .quote td:nth-child(n+4),.paper .quote th:nth-child(n+4) { text-align:right; }
.paper .quote h3 { font-size:13px !important; }
.pending-badge { display:inline-block; font-size:12px; border:1px solid var(--border-strong); padding:3px 5px; color:var(--ink-secondary); }
.quote-total { border-top:2px solid var(--ink-primary); margin-top:30px; }
.quote-total strong { font:32px var(--font-mono); }
.quote-pending { font-size:12px; color:var(--ink-secondary); text-align:right; margin-top:10px; }
.gantt { border-top:1px solid var(--ink-primary); }
.gantt-head > span { white-space:nowrap; font-size:12px; padding:12px 5px; border-bottom:1px solid #aaa; }
.gantt-phase > strong { font-size:12px; padding:18px 8px 18px 0; font-weight:500; }
.gantt-phase small { display:block; font-size:12px; color:var(--ink-secondary); margin-top:8px; }
.gantt-cell { border-left:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; display:flex; align-items:center; }
.gantt-bar { background:#333e45; color:white; width:100%; padding:9px 4px; font-size:12px; white-space:normal; }
.checkpoint { position:absolute; right:0; bottom:10px; width:7px; height:7px; background:#fff; border:1px solid #333e45; transform:rotate(45deg); }
.phase-details { margin-top:26px; }
.phase-details .document-row { padding:15px 0; }
.letter-opening { padding:8px 0 30px; }
.paper .letter-opening h3 { font-size:30px !important; line-height:1.4; margin:16px 0; }
.scope-head,.scope-row { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.scope-head { border-block:1px solid var(--ink-primary); padding:14px 0; }
.scope-row > div:last-child { border-left:1px solid var(--line); padding-left:20px; }
.prep-checklist { border-top:1px solid var(--ink-primary); margin-top:28px; padding-top:20px; }
.handover-sign { display:flex; flex-wrap:wrap; gap:20px; font-size:12px; margin-top:38px; padding-top:20px; border-top:1px solid var(--line); }
.paper .changed { border-bottom:2px solid #8c2d19; background:transparent; }
.paper tr.changed { border-bottom:2px solid #8c2d19; }
.change-badge { color:var(--ink-secondary); }
del { color:#993e2b; background:transparent; }
ins { color:#17634b; background:transparent; }
.changed-files button { justify-content:space-between; }
.changed-files button span { margin-left:auto; }
.revision-decisions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.specification { background:white; }
.specification .spec-title span::after { content:none; }
.spec-status { border:1px solid #c6c6c6; padding:4px 9px; border-radius:4px; font-size:12px; }
.spec-metadata { display:flex; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--line); color:var(--ink-secondary); font-size:12px; }
.spec-row { border-radius:0 !important; padding:24px 0; }
.binding { flex-wrap:wrap; }
.binding button { display:flex; align-items:center; gap:6px; width:auto; height:auto; padding:4px 7px 4px 4px; border:1px solid var(--line); border-radius:5px; font-size:12px; }
.binding button img { width:28px; height:28px; object-fit:cover; }
.binding button.selected { border-color:var(--ink-primary); }
.spec-fields { grid-template-columns:1fr 1fr; }
.spec-fields > label:first-child,.spec-fields .binding,.number-fields { grid-column:1/-1; }
@media(max-width:760px) { .artifact-area .paper-studio .paper { width:100%; zoom:1; } .spec-fields { grid-template-columns:1fr; } .sop-steps,.artifact-area .sop-steps { grid-template-columns:1fr; } .paper:has(.gantt) { overflow:auto; } }
.claim-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.claim-chips span { color:#8c2d19; border:1px solid #d7b8b0; padding:3px 7px; border-radius:4px; font-size:12px; }

.spec-title { position:sticky; top:0; z-index:2; background:#fff; padding:12px 0; align-items:center; gap:16px; }
.spec-approval { display:flex; align-items:center; gap:12px; }
.spec-title .spec-status.pending { color:#895b16; background:#fff6e6; border-color:#d9b774; }
.interaction:has(.changed-files) { overflow:auto; }
.interaction .changed-files { margin-bottom:0; }
.interaction .revision-decisions { margin-top:8px; flex-direction:column; align-items:stretch; }
@media(max-width:760px) { .spec-title { flex-wrap:wrap; } .interaction:has(.changed-files) { overflow:auto; } }
/* v4: readable artboards on a scrolling studio canvas. */
.workspace-body { grid-template-columns:minmax(320px,340px) minmax(0,1fr); }
.interaction { padding:20px 12px 90px; }
.interaction h2 { font-size:16px; margin-bottom:20px; }
.photo-context summary { cursor:pointer; font-size:13px; margin-bottom:14px; }
.photo-context .raw-notes { line-height:1.8; }
.canvas-controls { display:flex; gap:3px; margin-left:auto; }
.canvas-controls [aria-pressed="true"] { background:#eceeef; }
.artifact-area { position:relative; min-height:0; }
.artifact-area > .artifact-tabs { flex:0 0 auto; }
.artifact-area .desk { position:static; inset:auto; flex:1 1 0; min-height:0; min-width:0; padding:46px 48px 32px; overflow:auto; }
.artifact-area .paper-studio { display:grid; grid-template-columns:repeat(3,460px); width:max-content; max-width:none; gap:32px; align-items:start; }
.artifact-area .paper-studio .paper { position:relative; zoom:1; width:460px; min-width:460px; padding:22px !important; overflow-wrap:normal; }
.artifact-area .desk[data-view="2"] .paper-studio { grid-template-columns:repeat(2,460px); row-gap:70px; }
.artifact-area .desk[data-view="1"] .paper-studio,.artifact-area .single-document .paper-studio { display:grid; grid-template-columns:720px; width:max-content; max-width:none; row-gap:70px; }
.artifact-area .desk[data-view="1"] .paper,.artifact-area .single-document .paper { width:720px; }
.artifact-area .paper-studio .paper h2 { font-size:22px !important; }
.artifact-area .paper-studio .paper h3 { font-size:14px !important; }
.artifact-area .paper-studio .paper p,.artifact-area .paper td,.artifact-area .paper th { font-size:12px; line-height:1.65; }
.artboard-header { position:absolute; top:-31px; left:0; right:0; display:flex; justify-content:space-between; color:var(--ink-secondary); font-size:12px; height:24px; align-items:center; }
.artifact-area .sop-steps img { height:120px; }
.artifact-area .tool-strip img { height:110px; }
.artifact-area .qa-table td { padding:17px 7px; }
.artifact-area .quote td { padding:18px 6px; }
.artifact-area .quote td:nth-child(n+4) { word-break:normal; }
.artifact-area .lookbook-hero img { height:300px; }
.artifact-area .planogram-photos img { height:190px; }
.artifact-area .kv-frame img { height:240px; }
.focus-canvas { grid-template-columns:1fr; }
.focus-canvas .rail,.focus-canvas .interaction { display:none; }
.focus-canvas .workspace-body { grid-template-columns:1fr; }
.selection-actions { position:static; inset:auto; flex:0 0 auto; display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin:0 24px 8px; }
.node-highlight { outline:2px solid var(--ink-secondary) !important; outline-offset:3px; background:var(--bg-subtle); }
.changed-files button { border:1px solid var(--line); border-radius:20px; margin-bottom:8px; padding:9px; }
.revision-decisions { display:flex; flex-wrap:wrap; gap:8px; }
.paper del { color:#9a4738; text-decoration-thickness:1px; }
.paper ins { color:#286752; text-decoration:none; border-bottom:2px solid #286752; }
.gallery-art { position:relative; height:260px; background:var(--bg-canvas); border-radius:12px; overflow:hidden; }
.gallery-photo { height:140px; width:100%; object-fit:cover; }
.mini-fan { position:absolute; inset:90px 20px 14px; display:block; }
.mini-page { position:absolute; width:43%; height:150px; padding:13px; background:#fff; box-shadow:0 4px 15px rgba(0,0,0,.08); }
.mini-page:nth-child(1) { left:0; transform:rotate(-9deg); }
.mini-page:nth-child(2) { left:27%; top:-7px; transform:rotate(1deg); }
.mini-page:nth-child(3) { right:0; transform:rotate(10deg); }
.mini-page b { display:block; border-bottom:1px solid #ddd; padding-bottom:10px; font-size:12px; }
.inspector-image { max-height:76vh; max-width:85vw; object-fit:contain; }
.extract-stages { padding:0; list-style:none; min-width:300px; }
.extract-stages li { padding:14px 0; color:#767676; border-bottom:1px solid var(--line); }
.extract-stages .active { color:var(--ink-primary); font-weight:600; }
.readonly .paper { position:relative; }
@media(max-width:1100px) { }
.empty-sessions { padding:16px 10px; font-size:13px; color:var(--ink-secondary); }
.spec-fields { min-width:0; }
.spec-fields label { min-width:0; }
.spec-fields textarea { line-height:1.7; }
.spec-row { padding:24px 12px; }
.specification .binding { flex-wrap:wrap; }
.artifact-area .paper .gantt-head span { line-height:1.6; }
.mini-page img { width:100%; height:45px; object-fit:cover; margin:8px 0 0; }


/* Revision dock: explicit intrinsic grid, independent of the former side drawer. */
.revision-drawer { position:static; inset:auto; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 12px; width:auto; height:auto; min-height:56px; max-height:none; flex:0 0 auto; margin:0 24px 16px; padding:8px 12px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 8px 28px rgba(0,0,0,.06); overflow:auto; }
.revision-drawer:not(.agent-composer) .drawer-heading,.revision-drawer:not(.agent-composer) > p,.revision-drawer:not(.agent-composer) .presets,.revision-drawer:not(.agent-composer) .number-fields { display:none; }
.revision-drawer > label { min-width:0; font-size:12px; margin:0; }
.revision-drawer textarea { display:block; width:100%; min-height:38px; height:38px !important; max-height:100px; margin:0; padding:8px 0; font-size:14px; border:0; resize:none; }
.revision-drawer > button { position:static; width:auto; margin:0; font-size:12px; }
.revision-drawer:focus-within { align-items:start; }
.revision-drawer:focus-within .presets,.revision-drawer:focus-within .number-fields { display:flex; grid-column:1 / -1; margin:0; gap:8px; }
.revision-drawer:focus-within .presets { flex-direction:row; flex-wrap:wrap; }
.revision-drawer:focus-within textarea { height:68px !important; }
.artifact-area .paper-studio { gap:24px; }
.artifact-area .paper-studio .paper { min-height:660px; }
.artifact-area .paper-studio .paper h2 { margin:18px 0 22px !important; }
.artifact-area .sop-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 14px; }
.artifact-area .sop-steps img { height:100px; }
.artifact-area .step-top { min-height:48px; gap:8px; }
.artifact-area .lookbook-hero { grid-template-columns:1fr; gap:16px; }
.artifact-area .lookbook-hero img { height:230px; }
.artifact-area .paper .editorial-title { font-size:22px !important; }
.artifact-area .planogram-photos img { height:150px; }
.artifact-area .gantt-head span { padding:6px 3px; }
.artifact-area .gantt-bar { padding:6px 2px; font-size:12px; }
.artifact-area .quote td,.artifact-area .quote th { padding:12px 4px; }
.quote-item-detail { margin:7px 0 0; color:var(--ink-secondary); font-weight:400; }
.focus-canvas .artifact-area .desk { padding:46px 28px 28px; }
.focus-canvas .artifact-area .desk[data-view="3"] .paper-studio { grid-template-columns:repeat(3,440px); }
.focus-canvas .artifact-area .desk[data-view="3"] .paper { width:440px; min-width:440px; }
.focus-canvas .workspace-body { grid-template-rows:minmax(0,1fr) auto; }
.focus-canvas .artifact-area { grid-row:1; }
.focus-canvas .interaction { grid-row:2; display:block; position:static; inset:auto; width:auto; padding:0 28px 12px; background:var(--desk); border:0; }
.focus-canvas .interaction > :not(.photo-context),.focus-canvas .photo-context summary,.focus-canvas .photo-context .raw-notes { display:none; }
.focus-canvas .interaction .contact-strip { height:52px; }
.focus-canvas .interaction .contact-strip img { height:48px; }

.mini-page { width:48%; padding:10px; }
.mini-page b { line-height:1.5; min-height:46px; word-break:keep-all; overflow-wrap:normal; text-wrap:balance; }
@media(max-width:760px) { .workspace-body { grid-template-columns:1fr; } .interaction { display:none; } .artifact-area .desk { padding:46px 16px 24px; } .revision-drawer { margin:0 12px 12px; } }

/* Five-column quote: fixed numeric budgets leave the description the remainder. */
.quote col:nth-child(1) { width:24px; }
.quote col:nth-child(3) { width:44px; }
.quote col:nth-child(4),.quote col:nth-child(5) { width:64px; }
.paper th { white-space:nowrap; }
.paper .quote td:not(:nth-child(2)) { white-space:nowrap; }
.paper .quote th:first-child,.paper .quote td:first-child { padding-left:0; padding-right:0; }
.pending-badge { white-space:nowrap; }
.gantt-head,.gantt-phase { display:grid; grid-template-columns:100px repeat(4,minmax(0,1fr)); }
.gantt-phase > strong,.gantt-phase small { word-break:keep-all; overflow-wrap:normal; }
.gantt-bar { white-space:nowrap; }
.interaction .changed-files,.interaction .revision-decisions { flex-shrink:0; }

/* v5: locale-aware typography and a single neutral workspace palette. */
:root[lang="zh-CN"] body { line-height:1.65; }
:root[lang="en"] body { line-height:1.55; }
:root[lang="zh-CN"] :is(h1,h2,h3) { line-height:1.35; letter-spacing:0; }
:root[lang="en"] :is(h1,h2) { line-height:1.25; letter-spacing:-.018em; }
:root[lang="en"] h3 { line-height:1.25; }
:root[lang="zh-CN"] :is(.stamp,.status-badge,.spec-status,.pending-badge) { letter-spacing:.02em; }
button,input,textarea,select,table,.stamp,.row-index { font-variant-numeric:tabular-nums; }
.rail { background:var(--bg-rail); }
.session { padding:9px 10px; border-radius:8px; margin-bottom:4px; }
.session span { margin-top:3px; }
.session:hover,button:hover,.button:hover { background:var(--bg-hover); }
.session.active,.language-toggle [aria-pressed="true"] { background:var(--bg-active); }
.home h1 { font-size:24px; }
.studio-bar { height:52px; min-height:52px; padding:0 20px; gap:12px; flex-wrap:nowrap; }
.identity { min-width:0; flex:1; overflow:hidden; }
.identity strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.actions { flex-shrink:0; gap:6px; }
.language-toggle { display:inline-flex; align-items:center; gap:2px; padding:2px; border:1px solid var(--line); border-radius:8px; flex-shrink:0; }
.language-toggle button { border:0; min-height:26px; padding:3px 7px; border-radius:5px; font-size:12px; }
.rail > .language-toggle { align-self:flex-start; margin-bottom:14px; }
.status-badge { font-size:12px; white-space:nowrap; color:var(--ink-muted); }
.artifact-tabs { height:44px; min-height:44px; padding:0 16px; gap:2px; overflow-x:auto; flex-wrap:nowrap; }
.artifact-tabs button,.artifact-tabs a { height:30px; min-height:30px; padding:4px 9px; }
.canvas-controls { display:flex; gap:2px; padding:2px; margin-left:auto; }
.spec-row { padding:18px 20px; margin-top:14px; grid-template-columns:28px minmax(0,1fr); gap:14px; border:1px solid var(--line); border-radius:12px !important; }
.spec-row .row-index { padding-left:0; font-family:var(--font-mono); }
.spec-fields { gap:12px 16px; padding-right:0; }
.spec-fields label { display:flex; flex-direction:column; gap:6px; }
.spec-fields label.pending { flex-direction:row; align-items:center; }
input,textarea,select { padding:8px 11px; border-radius:8px; border:1px solid var(--border-hairline); background:#FAFAFB; }
input:focus,textarea:focus,select:focus { background:#fff; outline:2px solid var(--border-strong); outline-offset:1px; }
input[type="checkbox"] { padding:0; accent-color:var(--ink); }
.artifact-area .paper-studio { gap:20px; }
.artifact-area .paper-studio .paper { padding:28px 32px !important; min-height:calc(460px * 1.4142); }
.artifact-area .paper-studio .paper h2 { font-size:22px !important; }
.paper td,.paper th,.paper .quote td,.paper .quote th { padding:8px 10px; }
.revision-drawer { padding:10px 14px; }
.revision-drawer textarea { padding:8px 11px; border:1px solid var(--border-hairline); border-radius:8px; background:#FAFAFB; }
.version-history { margin-top:24px; border-top:1px solid var(--line); padding-top:16px; }
.version-history h3 { font-size:13px; font-weight:500; margin-bottom:10px; }
.version-history button { display:flex; width:100%; justify-content:flex-start; margin-bottom:4px; border:0; font-size:13px; }
.version-history .active { background:var(--bg-active); }
.version-history p { margin-top:10px; font-size:12px; color:var(--ink-muted); }
:root[lang="en"] .gantt-head > span,:root[lang="en"] .gantt-bar { white-space:normal; overflow-wrap:normal; }
:root[lang="en"] .quote th { white-space:normal; }
:root[lang="en"] .quote col:nth-child(4),:root[lang="en"] .quote col:nth-child(5) { width:68px; }
:root[lang="en"] .quote td:not(:nth-child(2)) { white-space:normal; }
:root[lang="en"] .artboard-header { gap:8px; }
.artboard-header span:last-child { display:none; }
@media(max-width:760px) { .studio-bar { overflow-x:auto; } .spec-row { padding:18px 12px; } .rail .language-toggle { flex-direction:column; } }

.revision-label { display:none; }
:root[lang="en"] p { line-height:1.55; }
:root[lang="en"] .artifact-area .paper-studio .paper p { line-height:1.55; }
.artifact-area .paper td,.artifact-area .paper th,.artifact-area .paper .quote td,.artifact-area .paper .quote th { padding:8px 10px; }
.revision-drawer { min-height:60px; }

.identity > a,.identity > span { display:inline; }
.identity > .status-badge { display:inline-block; }
.actions { flex-wrap:nowrap; }
.spec-fields :is(input:not([type="checkbox"]),textarea) { padding:8px 11px; border:1px solid var(--border-hairline); border-radius:8px; background:#FAFAFB; }
.spec-fields :is(input,textarea):focus { background:white; }
.artifact-area .paper-studio .paper { aspect-ratio:210 / 297; min-height:650px !important; }
.sessions { gap:4px; }
.composer-actions select { width:auto; max-width:48%; }

.stamp.mfg,.stamp.ecom,.stamp.trad { color:var(--ink-secondary); background:var(--bg-subtle); }
.history-dialog { display:grid; gap:8px; margin:16px 0; }
.history-dialog p { max-width:420px; }

.studio-bar .language-toggle { order:-1; }
.focus-canvas .studio-bar .language-toggle { display:inline-flex !important; }
.studio-bar .actions { overflow:visible; }
/* Keep placeholder contrast readable against the soft input surface. */
::placeholder { color:var(--ink-muted); opacity:1; }
/* A clear canvas gutter keeps partially visible sheets away from the clip edge. */
.artifact-area .desk { padding-inline:64px; }
/* All three miniature titles remain readable above the photo previews. */
.mini-fan { display:flex; gap:4px; }
.mini-page { position:relative; inset:auto; width:calc((100% - 8px) / 3); flex:1 1 0; padding:8px; }
.mini-page:nth-child(1) { left:auto; transform:rotate(-2deg); }
.mini-page:nth-child(2) { left:auto; top:auto; transform:none; }
.mini-page:nth-child(3) { right:auto; transform:rotate(2deg); }
.mini-page b { min-height:64px; word-break:normal; overflow-wrap:anywhere; text-wrap:balance; }
.step-top h3 { text-wrap:balance; }
.material-tags span { padding-inline:8px; }
.paper p { text-wrap:pretty; }


/* v5 gallery stack */
.gallery-art { position: relative; overflow: hidden; }
.gallery-art .mini-fan { pointer-events: none; }
.gallery-item h2 { position: relative; z-index: 1; }
.mini-page { overflow: hidden; }
.mini-page b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; font-size: 12px; }

/* v5 control pad floor */
.artifact-tabs button, .artifact-tabs a, .language-toggle button, .canvas-controls button { padding-inline: max(8px, 0.5em); }
.paper td, .paper th { padding: 8px 10px !important; }

/* v5 heading measure */
.editorial-title, .letter-opening h3, .kv-lockup { text-wrap: pretty; max-width: 18em; }
:root[lang="en"] .editorial-title, :root[lang="en"] .letter-opening h3 { max-width: 16em; }

input::placeholder, textarea::placeholder { color: var(--ink-secondary); opacity: 1; }

/* v5 artboard gutters: keep rest-state cards out of the edge-flush band (-24px, 8px). */
.artifact-area .desk { padding: 46px 48px 36px !important; }
.artifact-area .desk.with-drawer { padding-right: 56px !important; }
.artifact-area .paper-studio { padding-right: 48px; box-sizing: content-box; }
.artifact-area .paper-studio .paper { box-shadow: none; }

/* v5 artboard gap floor: second sheet must peek >=24px past the desk clip (non-focus). */
.artifact-area .paper-studio { gap: 32px !important; }
.artifact-area .desk[data-view="2"] .paper-studio { gap: 32px !important; }
.focus-canvas .artifact-area .paper-studio { gap: 24px !important; }
.focus-canvas .artifact-area .desk { padding: 40px 24px 24px !important; }
.focus-canvas .artifact-area .desk[data-view="3"] .paper-studio { grid-template-columns: repeat(3, 424px) !important; width: max-content; }
.focus-canvas .artifact-area .desk[data-view="3"] .paper { width: 424px !important; min-width: 424px !important; }
.focus-canvas .artifact-area .paper-studio { padding-right: 0 !important; }

/* v5 mini previews are not cards (avoid nested-cards). */
.gallery-item { background: transparent; border: 0; box-shadow: none; padding: 0; }
.gallery-item .gallery-art { background: var(--bg-subtle); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.mini-page { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.mini-fan { gap: 6px; }
.gallery-item h2 { margin-top: 12px; }
.gallery-item > span { display: block; margin-top: 4px; }
/* Keep job title on one line in the interaction column. */
.interaction > h2 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }

/* v5 mini-page titles need opaque type over photo thumbs. */
.mini-page { position: relative; padding-top: 28px !important; }
.mini-page b {
  position: absolute; left: 6px; right: 6px; top: 6px;
  z-index: 2;
  padding: 3px 6px;
  border-radius: 6px;
  background: rgba(255,255,255,.96);
  color: var(--ink-primary) !important;
  font-size: 12px;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mini-page img { display: block; width: 100%; height: 72px; object-fit: cover; border-radius: 4px; }

/* v6 stable source, agent and deliverable zones */
.rail { display:flex; flex-direction:column; height:100vh; overflow:hidden; padding-bottom:0; }
.sessions { flex:1; min-height:0; overflow:auto; }
.rail-footer { margin-top:auto; flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid var(--line); padding:10px 0; }
.rail-footer > button { gap:6px; }
.collapsed .rail-footer { justify-content:center; }
.collapsed .rail-footer > .btn { font-size:12px; color:transparent; width:32px; height:32px; padding:0; }
.collapsed .rail-footer > .btn .ui-icon { color:#141514; }
.collapsed .rail-footer .language-toggle { display:none; }
.home-center { max-width:1080px; }
.composer-actions { flex-wrap:wrap; gap:8px; }
.composer-actions > select { margin-left:auto; max-width:210px; font-size:12px; }
.capability-pills { display:flex; gap:4px; flex-wrap:wrap; }
.capability-pills button { border-radius:16px; font-size:12px; padding:6px 8px; background:transparent; }
.capability-pills button[aria-pressed="true"] { background:#ECEEF0; border-color:#D5D8DC; }
.mode-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0 36px; }
.mode-cards button { text-align:left; display:flex; flex-direction:column; align-items:start; gap:8px; padding:14px; white-space:normal; background:transparent; }
.mode-cards button[aria-pressed="true"] { border-color:#838B96; background:#F4F5F7; }
.mode-cards strong { font-size:14px; }
.mode-cards span { font-size:12px; line-height:1.65; color:var(--ink-secondary); }
.workspace-body { grid-template-columns:330px minmax(0,1fr); }
.interaction { padding:0; overflow:hidden; min-height:0; }
.source-scroll { flex:1; min-height:0; overflow:auto; padding:14px; }
.interaction .evidence-mat { display:block; padding:0; height:auto; overflow:visible; border:0; }
.interaction .photo-view { height:180px; min-height:0; }
.interaction .photo-view img { width:100%; height:180px; object-fit:cover; }
.interaction .photo-view button { width:100%; padding:0; }
.interaction .thumbnails { margin:10px 0; flex-wrap:wrap; }
.interaction .thumbnails img { width:44px; height:44px; }
.interaction .dropzone { padding:10px; margin:10px 0; }
.interaction .notes textarea { min-height:64px; max-height:120px; }
.model-metadata { border-top:1px solid var(--line); padding-top:14px; margin-top:16px; font-size:12px; }
.capability-tags { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.capability-tags span { color:var(--ink-secondary); }
.version-history { margin:12px 0; }
.artifact-tabs { flex:0 0 44px; min-height:44px; padding:0 12px; gap:4px; }
.artifact-tabs > a,.artifact-tabs > button { font-size:12px; padding:6px; white-space:nowrap; }
.canvas-controls { margin-left:auto; gap:4px; }
.canvas-controls button { font-size:12px; padding:6px 8px; white-space:nowrap; }
.artifact-area > .specification { flex:1; min-height:0; overflow:auto; padding:20px; }
.specification .spec-title { position:static; padding:0 0 18px; }
.spec-row { padding:18px 20px; }
.capture-prompt { padding:80px 20px; }
.revision-drawer.agent-composer { display:flex; flex-direction:column; align-items:stretch; flex:0 0 auto; border-radius:0; border:0; border-top:1px solid var(--line); box-shadow:none; padding:12px; margin:0; width:100%; overflow:auto; max-height:50vh; gap:8px; }
.agent-composer .drawer-heading { display:none; }
.agent-composer > p,.agent-composer .presets,.agent-composer .number-fields { display:flex; margin:0; font-size:12px; }
.agent-composer .presets { flex-wrap:wrap; gap:4px; }
.agent-composer .presets button { font-size:12px; padding:5px 8px; white-space:normal; text-align:left; }
.agent-composer textarea,.agent-composer:focus-within textarea { height:64px !important; min-height:64px; }
.agent-footer { display:flex; align-items:center; gap:8px; }
.agent-footer select { min-width:0; width:50%; font-size:12px; }
.agent-footer button { margin-left:auto; font-size:12px; padding:8px; }
.artifact-area .desk,.artifact-area .desk.with-drawer { padding:28px 32px !important; }
.focus-canvas .workspace-body { grid-template-rows:minmax(0,1fr); }
.focus-canvas .interaction { display:none; }
.selection-actions { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:8px; padding:8px; background:white; border:1px solid var(--line); border-radius:10px; z-index:5; }
.settings-fields { display:grid; gap:16px; margin:20px 0; }
.settings-fields label { display:grid; gap:6px; font-size:13px; }
.settings-fields input,.settings-fields select { width:100%; padding:8px 11px; background:#FAFAFB; border:1px solid var(--line); border-radius:8px; }
dialog:has(.settings-fields) { width:460px; padding:20px; }
@media(max-width:1100px) { .workspace-body { grid-template-columns:300px minmax(0,1fr); } .rail-footer > .btn { font-size:12px; color:transparent; width:32px; padding:0; } .rail-footer > .btn .ui-icon { color:#141514; } .rail-footer .language-toggle { display:none; } }
.agent-composer .selected-item { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.agent-composer .selected-item button { font-size:12px; padding:4px 6px; }

/* v6 middle column pinned agent */
.interaction { display:flex; flex-direction:column; min-height:0; }
.interaction > .source-scroll { flex:1; min-height:0; overflow:auto; }
.interaction > .agent-composer { flex:0 0 auto; }
.artifact-area { display:flex; flex-direction:column; min-height:0; }
.artifact-area > .artifact-tabs { flex:0 0 auto; }
.artifact-area > .desk, .artifact-area > .specification { flex:1; min-height:0; overflow:auto; }
.job-workspace { display:flex; flex-direction:column; min-height:0; height:100vh; }
.job-workspace > .studio-bar { flex:0 0 auto; }
.job-workspace > .workspace-body { flex:1; min-height:0; }

.revision-drawer.agent-composer > p.selected-item,
.revision-drawer.agent-composer .presets,
.revision-drawer.agent-composer .number-fields { display:flex !important; }
.revision-label { display:none; }
.focus-canvas .selection-actions { display:flex !important; position:fixed; bottom:28px; left:50%; transform:translateX(-50%); z-index:20; box-shadow:0 8px 28px rgba(0,0,0,.12); }

/* v7 atoms: shape conveys purpose before the label is read. */
.ui-icon,.brand-mark { display:inline-block; flex:none; vertical-align:middle; }
.brand-lockup { display:flex; align-items:center; justify-content:center; gap:12px; }
.home h1.brand-lockup { margin:0 0 28px; font-size:24px; }
.rail-brand { gap:8px; }
.share-brand { gap:8px; color:#141514; text-decoration:none; font-weight:600; white-space:nowrap; }
button.btn,a.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; border-radius:8px; font-size:12px; line-height:1; padding:0 10px; min-height:0; white-space:nowrap; }
button.btn-sm { height:28px; }
button.btn-md { height:32px; }
button.btn-lg { height:36px; }
button.btn-primary { background:#141514; color:#fafaf9; border:1px solid #141514; box-shadow:inset 0 1px 0 #ffffff24; }
button.btn-primary:hover { background:#252725; }
button.btn-secondary { background:#fff; color:#141514; border:1px solid rgba(20,21,20,.13); box-shadow:0 1px 2px #14151408; }
button.btn-secondary:hover { background:#f4f5f4; }
button.btn-ghost,button.btn-icon { border-radius:7px; background:transparent; border:1px solid transparent; box-shadow:none; }
button.btn-ghost:hover,button.btn-icon:hover { background:#eaece8; }
button.btn-icon { width:28px; padding:0; }
.segmented { display:inline-flex; align-items:center; gap:2px; padding:2px; border-radius:8px; background:#e8eae8; border:0; box-shadow:inset 0 1px 2px #14151406; }
.segmented > button { flex:1; min-width:0; min-height:26px; height:26px; padding:0 7px; border:0; border-radius:6px; background:transparent; font-size:12px; color:#60645f; box-shadow:none; white-space:nowrap; }
.segmented > button.active,.segmented > button[aria-pressed="true"] { background:#fff; color:#141514; box-shadow:0 1px 3px #1415141a; }
.rail .filters.segmented { display:flex; width:100%; padding:2px; margin:0 0 12px; }
.rail .filters.segmented > button { padding:0 4px; }
.rail-footer .language-toggle { margin:0; }
.density-control { flex:none; }
.canvas-controls .density-control button { padding:0 7px; min-height:26px; }
button.capsule { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:28px; height:auto; padding:4px 9px; border-radius:999px; font-size:12px; line-height:1.45; border:1px solid #d7dad5; background:#fff; box-shadow:none; }
.capability-pills .capsule[aria-pressed="true"] { color:#242923; background:#e9eee7; border-color:#d6dfd2; }
.capability-pills .capsule[aria-pressed="false"] { color:#757b72; border-style:dashed; background:transparent; }
button.capsule:hover { background:#eaece8; }
.tag { display:inline-flex; align-items:center; gap:5px; height:22px; min-height:20px; padding:0 6px; border-radius:4px; font-size:12px; line-height:20px; font-weight:400; font-variant-numeric:tabular-nums; background:#f0f2ef; color:#586052; border:0; box-shadow:none; white-space:nowrap; }
.tag-status::before { content:''; width:5px; height:5px; border-radius:50%; background:#78856d; flex:none; }
button.tag { border-radius:4px; height:22px; min-height:20px; padding:0 6px; box-shadow:none; }
.tag-compliance,.claim-chips .tag { color:#9b382d; background:#fbefec; border:1px solid #edd4ce; padding:0 6px; border-radius:4px; }
.tag-compliance .ui-icon { width:12px; height:12px; }
.material-tags .tag { border-radius:3px; }
.capability-tags .tag { color:#586052; }
.select-wrap { position:relative; display:inline-flex; align-items:center; min-width:0; }
.select-wrap > .ui-icon { position:absolute; left:9px; pointer-events:none; color:#687064; width:14px; height:14px; }
.select-wrap > .ui-icon:last-child { left:auto; right:8px; }
select.select-control,.settings-fields select.select-control { appearance:none; height:32px; min-width:0; width:100%; border:1px solid rgba(20,21,20,.13); border-radius:8px; background:#fff; padding:0 28px 0 30px; font-size:12px; color:#353b31; }
.composer-actions > .select-wrap { margin-left:auto; max-width:210px; }
.agent-footer > .select-wrap { width:50%; }
.agent-footer .select-control { width:100%; }
.artifact-tabs > a,.artifact-tabs > button { display:inline-flex; align-items:center; gap:5px; font-variant-numeric:tabular-nums; }
.artifact-tabs .ui-icon { width:14px; height:14px; }
.mode-cards button { position:relative; border-radius:8px; padding:16px; gap:8px; }
.mode-cards button > .ui-icon { margin-bottom:4px; color:#535d4d; }
.mode-cards button[aria-pressed="true"] { background:#f4f6f2; border-color:#9da896; box-shadow:inset 0 1px 0 white; }
.changed-files button { border-radius:8px; }
.collapsed .rail-brand { flex-direction:column; justify-content:center; gap:10px; }
.collapsed .rail-brand > svg.brand-mark { display:block; }
.collapsed .rail-brand button { margin:0; }
.collapsed .rail > .btn { font-size:12px; color:transparent; width:32px; height:32px; padding:0; align-self:center; }
.collapsed .rail > .btn .ui-icon { color:#141514; }
@media(max-width:1100px) { .rail-brand > svg.brand-mark { display:block; } .rail-brand { flex-wrap:wrap; justify-content:center; } .rail-brand button { margin:0; } }
a.btn.btn-lg { height:36px; }
a.btn.btn-primary { background:#141514; color:#fafaf9; border:1px solid #141514; box-shadow:inset 0 1px 0 #ffffff24; }
a.btn.btn-primary:hover { background:#252725; }
.capsule.evidence-chip { display:inline-flex; align-items:center; gap:0; border-radius:999px; padding:0 4px 0 8px; background:#edf1e9; border:1px solid #d6dfd2; }
.evidence-chip button.capsule-action { display:inline-flex; align-items:center; gap:5px; min-height:26px; height:26px; padding:0 4px; font-size:12px; border:0; border-radius:7px; background:transparent; box-shadow:none; }
.evidence-chip button.capsule-action:hover { background:#dfe7d9; }
.identity > .tag-status { display:inline-flex; }
.tag-status::before { display:inline-block; }
.collapsed .rail .filters.segmented { display:none; }
@media(max-width:1100px) { .rail .filters.segmented { display:none; } }
.select-wrap select.select-control { max-width:none; }
.material-tags .tag { height:22px; padding:0 7px; }
.identity > .stamp.tag { display:inline-flex; }

.tag-status::before { background:#b45309; }
.status-badge.tag-status::before { background:var(--status-ink); }
.session .meta { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); margin-top:5px; }
.session .tag-status { height:18px; padding:0 5px; font-size:12px; }
.brand-lockup { display:inline-flex; align-items:center; justify-content:center; gap:12px; }
.home .brand-lockup { margin:0 0 36px; font-size:32px; font-weight:550; letter-spacing:-.02em; }
.share-brand { gap:8px; text-decoration:none; color:inherit; font-weight:600; }
.select-wrap { position:relative; display:inline-flex; align-items:center; gap:6px; }
.select-wrap .ui-icon { position:absolute; pointer-events:none; color:#60645f; }
.select-wrap .ui-icon:first-child { left:8px; }
.select-wrap .ui-icon:last-child { right:8px; }
.select-control { appearance:none; -webkit-appearance:none; height:32px; padding:0 28px 0 30px; border-radius:8px; border:1px solid rgba(20,21,20,.13); background:#fff; font-size:12px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; border-radius:8px; font-weight:500; }
.btn-sm { height:28px; padding:0 10px; font-size:12px; }
.btn-md { height:32px; padding:0 12px; font-size:13px; }
.btn-lg { height:36px; padding:0 14px; font-size:13px; }
.btn-icon { width:28px; height:28px; padding:0; border-radius:7px; }
.btn-ghost { background:transparent; border:0; box-shadow:none; border-radius:7px; }
.btn-ghost:hover { background:#eaeces; }
.btn-secondary { background:#fff; border:1px solid rgba(20,21,20,.13); box-shadow:0 1px 1.5px rgba(20,21,20,.05); }
.btn-secondary:hover { background:#f5f6f5; border-color:rgba(20,21,20,.24); }
.capsule { display:inline-flex; align-items:center; gap:4px; height:26px; padding:0 10px; border-radius:999px; font-size:12px; font-weight:500; border:1px solid rgba(20,21,20,.10); background:rgba(255,255,255,.45); color:#686d69; }
.capsule[aria-pressed="true"] { background:#e9ece9; border:1px solid rgba(20,21,20,.34); color:#141514; }
.capsule[aria-pressed="false"] { border-style:dashed; border-color:rgba(20,21,20,.18); }
.tag { display:inline-flex; align-items:center; gap:4px; height:20px; padding:0 6px; border-radius:4px; font-size:12px; line-height:1; font-variant-numeric:tabular-nums; background:#eff0ef; border:1px solid rgba(20,21,20,.10); color:#434744; box-shadow:none; cursor:default; }
.tag-compliance { background:#fdf2f2; border-color:#f0c4c4; color:#991b1b; }
.version-tag { background:#f4f5f4; border:1px solid rgba(20,21,20,.14); color:#2c2f2d; cursor:pointer; }
.material-tags .tag { height:18px; border-radius:3px; padding:0 5px; background:#f6f7f6; border-color:rgba(20,21,20,.16); }
.rail > .btn { width:100%; height:34px; justify-content:flex-start; }

button.btn { font-size:12px; }
button.btn.btn-md,button.btn.btn-lg { font-size:13px; }
button.btn.btn-sm { font-size:12px; }

/* v8 workspace layout and shared status palette. */
.home-center { max-width:1040px; margin-inline:auto; }
.home-hero { display:flex; flex-direction:column; align-items:center; gap:12px; margin-bottom:28px; text-align:center; }
.home-hero h1 { font-size:24px; margin:0; white-space:nowrap; }
.home-brand { display:none; }
.collapsed .home-brand { display:block; }
.home-composer { max-width:820px; margin-inline:auto; }
.composer-actions { flex-wrap:wrap; }
.toolbar-sep { width:1px; height:16px; background:#d8dce0; flex:none; }
.home-photos { display:flex; overflow-x:auto; gap:8px; align-items:center; }
.home-photos figure { position:relative; margin:0; flex:none; }
.home-photos img { width:72px; height:64px; object-fit:cover; border-radius:8px; }
.home-photos figure button { position:absolute; right:0; top:0; padding:2px; background:white; border-radius:8px; }
.status-draft { --status-ink:#64748b; --status-bg:#f4f5f6; --status-border:#e2e8f0; }
.status-pending { --status-ink:#d97706; --status-bg:#fdf6eb; --status-border:#edd6b4; }
.status-generated { --status-ink:#15803d; --status-bg:#eef7f0; --status-border:#c6e3cd; }
.status-reviewing { --status-ink:#1d4ed8; --status-bg:#eff4ff; --status-border:#c7d7fe; }
.tag-status { color:var(--status-ink); background:var(--status-bg); border:1px solid var(--status-border); }
.status-badge.tag-status::before,.session .tag-status::before { background:var(--status-ink); }
.session-monogram { display:none; }
.app-shell.collapsed { grid-template-columns:56px minmax(0,1fr); }
.collapsed .rail { width:56px; padding:12px 10px; }
.collapsed .rail-brand { position:static; gap:8px; }
.collapsed .rail-brand .btn-icon { position:static; }
.collapsed .rail .new-job { width:36px; height:36px; padding:0; border-radius:8px; justify-content:center; font-size:0; }
.collapsed .new-job span,.collapsed .session strong,.collapsed .session .meta { display:none; }
.collapsed .sessions { display:flex; flex-direction:column; gap:8px; overflow-y:auto; }
.collapsed .session { position:relative; display:flex; width:36px; height:36px; min-height:36px; padding:0; align-items:center; justify-content:center; border-radius:8px; }
.collapsed .session.active { box-shadow:inset 0 0 0 1px #94a3b8; }
.collapsed .session-monogram { display:block; font-size:12px; }
.collapsed .session-monogram::after { content:''; position:absolute; right:4px; bottom:4px; width:5px; height:5px; border-radius:50%; background:var(--status-ink); }
.collapsed .rail-footer { flex-direction:column; gap:8px; }
.collapsed .rail-footer > .btn { width:36px; color:inherit; font-size:12px; }
.collapsed .rail-footer > .btn[data-action="settings"] { font-size:0; }
.agent-footer { flex-direction:column; align-items:stretch; }
.agent-footer > .select-wrap { width:100%; }
.agent-footer button { margin:0; width:100%; }
.agent-footer select.select-control { width:100%; text-overflow:clip; }
.selected-item > span { display:block; margin-top:4px; }
.diff-review-card { position:static; flex:0 0 auto; margin:12px; background:white; padding:14px; border:1px solid #c7d7fe; border-radius:8px; }
.interaction:has(.diff-review-card) .source-scroll { display:flex; flex-direction:column; }

.diff-review-card .revision-decisions { display:flex; flex-direction:column; gap:8px; }
.diff-review-card [data-action="discard"] { border:1px solid #d8dce0; background:white; border-radius:8px; }
.focus-toolbar { display:none; }
.app-shell.focus-canvas { grid-template-columns:minmax(0,1fr); }
.app-shell.focus-canvas .rail,.app-shell.focus-canvas .interaction { display:none; width:0; }
.focus-canvas .workspace-body { grid-template-columns:minmax(0,1fr); }
.focus-canvas .focus-toolbar { display:flex; position:fixed; bottom:18px; left:50%; transform:translateX(-50%); gap:8px; padding:8px; background:white; border:1px solid #d8dce0; border-radius:8px; z-index:30; }
.focus-canvas .selection-actions { bottom:80px; }
.spec-row { position:relative; }
.spec-row > [data-remove-row] { position:absolute; right:4px; top:4px; }
.empty-capture { display:flex; flex-direction:column; align-items:center; gap:12px; padding:20px; }
.studio-bar .identity { min-width:0; }
.studio-bar .actions { flex-wrap:wrap; flex-shrink:0; }
@media(max-width:760px) { .home-brand { display:block; } .home-hero h1 { white-space:normal; font-size:20px; } }

/* v8: focus always retains an exit; review actions occupy the fixed agent zone. */
.app-shell.focus-canvas { grid-template-columns:minmax(0,1fr); }
.app-shell.focus-canvas .rail,.app-shell.focus-canvas .interaction { display:none; }
.focus-canvas .workspace-body { grid-template-columns:minmax(0,1fr); }
.focus-canvas .artifact-area .desk[data-view="3"] .paper-studio { grid-template-columns:repeat(3,440px) !important; }
.focus-canvas .artifact-area .desk[data-view="3"] .paper { width:440px !important; min-width:440px !important; }
.focus-canvas .artifact-area .desk { padding-bottom:90px !important; }
.diff-review-card .changed-files { display:flex; gap:6px; }
.diff-review-card .changed-files button { flex:1; min-width:0; display:flex; justify-content:space-between; padding:8px; }
.diff-review-card > p { margin:10px 0; max-height:64px; overflow:auto; }
.desk del { background:#fef2f2; color:#991b1b; text-decoration:line-through; }
.desk ins { background:#ecfdf3; color:#166534; text-decoration:none; }
.agent-footer .select-wrap { min-width:0; max-width:100%; }
.agent-footer select.select-control { min-width:0; max-width:100%; font-size:12px; }
.selected-item .linkage-tag { display:inline-flex; margin:6px 0; }
.collapsed .rail-brand > .brand-mark { display:none; }
.collapsed .rail-brand .btn-icon { width:36px; height:36px; }
.collapsed .session-monogram { font-variant-numeric:tabular-nums; }
.capture-prompt { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; min-height:440px; }

.home .home-hero h1 { margin:0; font-size:24px; letter-spacing:normal; }

.artifact-area > .selection-actions { position:static; inset:auto; transform:none; flex:0 0 auto; margin:0; border-radius:0; justify-content:flex-end; box-shadow:none; }
.collapsed .rail-footer .btn-icon { border-radius:7px; }

/* v8.1 polish: single top focus bar without sheet overlap + full mini-page titles */
.app-shell.focus-canvas .studio-bar,
.app-shell.focus-canvas .artifact-tabs { display:none !important; }
.app-shell.focus-canvas .focus-toolbar {
  display:flex; position:sticky; top:0; left:auto; bottom:auto; transform:none;
  align-items:center; gap:8px; width:100%; padding:8px 20px;
  background:rgba(250,250,249,.95); backdrop-filter:blur(8px);
  border:0; border-bottom:1px solid rgba(20,21,20,.10); border-radius:0; z-index:30;
}
.focus-toolbar > strong { font-size:13px; font-weight:600; color:#141514; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:320px; }
.focus-toolbar .focus-spacer { flex:1; min-width:8px; }
.app-shell.focus-canvas .artifact-area .desk { padding:22px 24px 32px !important; }
.gallery-art .mini-fan { inset:86px 10px 12px; gap:5px; }
.gallery-art .mini-page { padding:34px 4px 4px !important; }
.gallery-art .mini-page b {
  left:3px; right:3px; top:4px; padding:2px 4px;
  white-space:normal; line-height:1.22; max-height:2.55em; min-height:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
.storage-banner { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; padding:8px 16px; background:#F8F9FA; border-bottom:1px solid rgba(15,23,42,.08); color:#4B5563; font-size:12px; line-height:1.45; }
.storage-banner .btn { min-height:28px; }
.storage-banner .storage-problem { color:#111315; }
.storage-banner .prototype-note { color:#6B7280; }
.example-badge { display:inline-flex; align-items:center; height:18px; padding:0 6px; font-size:10px; letter-spacing:.04em; color:#4B5563; background:#F4F5F7; border:1px solid rgba(15,23,42,.08); vertical-align:middle; }
.gallery-item .example-badge { margin:8px 8px 0 0; }
.session .example-badge { height:18px; }
.collapsed .session.example .session-monogram { position:relative; box-shadow:inset 0 0 0 1px rgba(15,23,42,.18); }
html[lang="zh-CN"] .collapsed .session.example .session-monogram::before,
html[lang="en"] .collapsed .session.example .session-monogram::before { position:absolute; top:2px; left:2px; font-size:8px; line-height:1; color:#4B5563; }
html[lang="zh-CN"] .collapsed .session.example .session-monogram::before { content:"例"; }
html[lang="en"] .collapsed .session.example .session-monogram::before { content:"Ex"; }
@media (max-width: 720px) {
  .storage-banner { padding:8px 12px; }
}
