/* Warm modular studio. Generation algorithms and physical geometry are unchanged. */
.studio-page {
  background:#f5f2ec;
  font-size:12px
}
.studio-page .site-header {
  height:74px;
  padding:0 30px
}
.studio-page .brand-name {
  font-size:23px
}
.studio-page .brand-block {
  width:34px;
  height:34px;
  padding:7px;
  gap:5px
}
.studio-page .site-nav {
  gap:32px
}
.workspace-heading {
  height:67px;
  padding:0 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px
}
.workspace-heading>div {
  display:flex;
  align-items:center;
  gap:13px
}
.workspace-heading>div>a,.workspace-heading>div>span:not(.workspace-tag) {
  font-size:10px;
  color:#aa9c90
}
.workspace-heading h1 {
  font-size:17px;
  font-weight:600;
  margin:0
}
.workspace-tag {
  font-family:var(--font-display);
  font-size:9px;
  letter-spacing:1px;
  border:1px solid #e9ccaf;
  background:#fbecdd;
  color:#b47b4d;
  border-radius:5px;
  padding:2px 6px
}
.workspace-heading ol {
  display:flex;
  list-style:none;
  gap:24px;
  margin:0;
  padding:0;
  font-size:10px;
  color:#b2a396
}
.workspace-heading li {
  display:flex;
  align-items:center;
  gap:7px
}
.workspace-heading b {
  font-family:var(--font-display);
  width:18px;
  height:18px;
  border-radius:50%;
  border:1px solid #ded3c6;
  display:grid;
  place-items:center;
  font-size:9px;
  font-weight:400
}
.workspace-heading .is-current {
  color:var(--orange-dark)
}
.workspace-heading .is-current b {
  background:#f5dec8;
  border-color:#ecc4a2
}
.bench {
  display:grid;
  grid-template-columns:300px minmax(340px,1fr) 302px;
  gap:17px;
  padding:0 24px 10px;
  max-width:2000px;
  margin:0 auto;
  height:auto;
  min-height:0;
  align-items:start
}
.panel {
  background:var(--white);
  border:1px solid #e8dfd3;
  border-radius:17px;
  box-shadow:0 5px 0 #e3dace,0 7px 10px #5e3e2404;
  min-width:0;
  height:100%;
  position:relative;
  overflow:hidden
}
.panel--intake {
  overflow-y:auto;
  scrollbar-gutter:stable
}
.panel__head {
  min-height:81px;
  padding:19px 21px 15px;
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center
}
.panel__head h2 {
  font-weight:600;
  font-size:16px;
  margin:3px 0 0
}
.panel-kicker {
  font-family:var(--font-display);
  font-size:8px;
  color:#b49b87;
  letter-spacing:1.7px
}
.panel-studs {
  display:flex;
  gap:7px;
  align-self:start;
  margin-top:7px
}
.panel-studs i {
  width:12px;
  height:12px;
  border-radius:50%;
  background:#f6e4d1;
  box-shadow:inset 0 2px 1px #fff5eb,0 2px 1px #dfc7ae
}
.intake {
  padding:0 18px 15px
}
.drop {
  display:flex;
  position:relative;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1.5px dashed #ddc5ac;
  border-radius:12px;
  padding:15px 9px 13px;
  background:#fffcf7;
  cursor:pointer;
  min-height:118px;
  transition:background .2s,border-color .2s
}
.drop:hover,.drop.is-over {
  border-color:var(--orange);
  background:#fff1e4
}
.drop input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0
}
.drop:focus-within {
  outline:3px solid #e99a63;
  outline-offset:3px
}
.drop__icon {
  font-size:24px;
  line-height:25px;
  color:var(--orange);
  font-weight:400;
  margin-bottom:5px
}
.drop__title {
  font-size:12px;
  font-weight:600
}
.drop__hint {
  font-size:10px;
  color:#a29181;
  margin-top:3px
}
.drop__file {
  font-family:var(--font-display);
  font-size:9px;
  color:#b1a08f;
  margin-top:7px;
  word-break:break-all;
  text-align:center;
  max-width:100%
}
.drop.has-file {
  border-style:solid;
  border-color:#e4ba95;
  background:#fff6ec
}
.drop.has-file .drop__file {
  color:var(--orange-dark);
  font-size:10px
}
.upload-notice {
  font-size:10px;
  line-height:1.7;
  color:#9b6d46;
  background:#fff5e9;
  padding:9px 11px;
  border-radius:8px;
  margin:9px 0 0
}
.craft-choices {
  border:0;
  padding:0;
  margin:23px 0 0;
  min-width:0
}
.setting-label {
  display:flex;
  align-items:center;
  gap:8px;
  color:#584438;
  font-size:12px;
  font-weight:600;
  margin-bottom:13px;
  padding:0
}
.setting-number {
  font-family:var(--font-display);
  font-size:9px;
  font-weight:500;
  color:#b18e70
}
.craft-option {
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid #e7dfd4;
  border-radius:10px;
  padding:12px 11px;
  margin:8px 0;
  cursor:pointer;
  transition:background .2s,border-color .2s,transform .2s;
  position:relative
}
.craft-option:hover {
  background:#fffbf6;
  transform:translateX(2px)
}
.craft-option input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px
}
.craft-option:has(input:checked) {
  border-color:#dc9d68;
  background:#fff4e8;
  box-shadow:inset 0 0 0 .5px #e3b289
}
.craft-option:has(input:focus-visible) {
  outline:3px solid #e99a63;
  outline-offset:3px
}
.craft-icon {
  width:37px;
  height:37px;
  flex-shrink:0;
  display:grid;
  place-items:center
}
.craft-icon svg {
  width:35px;
  height:35px;
  fill:#f9e7d3;
  stroke:#bd8c62;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round
}
.craft-option:has(input:checked) svg {
  fill:#f8d3ad;
  stroke:#c77b3e
}
.craft-option strong {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:600
}
.craft-option strong span {
  font-size:8px;
  font-weight:400;
  color:#b68a65;
  border-left:1px solid #e7d0bc;
  padding-left:8px
}
.craft-option small {
  display:block;
  font-size:10px;
  color:#a18d7c;
  margin-top:3px
}
.craft-option>i {
  width:13px;
  height:13px;
  border:1px solid #ddd0c2;
  border-radius:50%;
  margin-left:auto;
  flex-shrink:0
}
.craft-option:has(input:checked)>i {
  border:4px solid var(--orange);
  background:white
}
.effect-guide {
  border-left:2px solid #e4c3a3;
  margin:14px 2px 22px;
  padding-left:10px
}
.effect-guide strong {
  font-size:10px;
  font-weight:500;
  color:#98734f
}
.effect-guide p {
  font-size:10px;
  line-height:1.8;
  color:#a39180;
  margin:4px 0 0
}
.settings-section {
  border-top:1px solid #eee7df;
  padding-top:17px
}
.field {
  display:flex;
  flex-direction:column;
  gap:7px;
  margin:15px 0
}
.field>span {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
  font-weight:500;
  color:#645244
}
.field em {
  font-size:9px;
  color:#b09b87;
  font-style:normal;
  font-weight:400
}
.field input,.field select {
  width:100%;
  height:39px;
  border:1px solid #e6ddd1;
  border-radius:8px;
  background:#fffefa;
  padding:0 11px;
  color:#58473c;
  font-size:11px;
  outline-offset:2px
}
.field select {
  appearance:none;
  padding-right:30px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4 3 3 3-3' fill='none' stroke='%239e8975' stroke-width='1.3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 11px center
}
.number-unit {
  position:relative
}
.number-unit input {
  font-family:var(--font-display);
  font-size:16px;
  padding-right:48px
}
.number-unit>span {
  position:absolute;
  right:14px;
  top:10px;
  font-size:11px;
  color:#b69e86;
  pointer-events:none
}
.quick-sizes,.quick-layers {
  display:flex;
  gap:6px;
  margin-top:-5px
}
.quick-sizes button,.quick-layers button {
  border:1px solid #e9e0d6;
  border-radius:7px;
  background:white;
  color:#8c7561;
  flex:1;
  padding:7px 2px;
  font-size:10px;
  line-height:1.4
}
.quick-sizes small {
  display:block;
  font-size:8px;
  color:#b59b84;
  margin-top:3px
}
.quick-sizes .is-active,.quick-layers .is-active {
  background:#faeddf;
  border-color:#e2b88e;
  color:#9f5c2a
}
.field-help {
  display:block;
  font-size:9px!important;
  font-weight:400;
  line-height:1.8;
  color:#ad9783;
  margin:7px 0 0
}
.field-help[data-warning="true"] {
  color:#a24d28
}
.advanced-settings {
  margin:17px 0 0;
  border-top:1px solid #eee7df;
  border-bottom:1px solid #eee7df
}
.advanced-settings>summary {
  padding:13px 1px;
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  list-style:none;
  color:#8d7661;
  font-size:10px
}
.advanced-settings>summary:after {
  content:'＋';
  margin-left:auto;
  color:#b1977e;
  font-size:15px
}
.advanced-settings[open]>summary:after {
  content:'−'
}
.advanced-settings>summary small {
  font-size:8px;
  color:#bca894
}
.advanced-body {
  padding:0 0 12px
}
.advanced-body .field {
  margin-top:7px
}
.generate-action {
  padding-top:15px
}
.generate-action>p:first-child {
  font-size:9px;
  color:#a38b76;
  margin:0 0 10px;
  text-align:center
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid #e6d9ca;
  border-radius:8px;
  min-height:34px;
  padding:8px 12px;
  background:white;
  color:#8d715a;
  font-size:10px;
  transition:background .18s,transform .18s,box-shadow .18s
}
.btn--primary {
  width:100%;
  height:45px;
  border:0;
  background:var(--orange);
  box-shadow:0 4px 0 #bb5424;
  color:white;
  justify-content:space-between;
  font-size:12px;
  padding:0 15px;
  border-radius:9px
}
.btn--primary:hover {
  background:#df6229;
  transform:translateY(-1px);
  box-shadow:0 5px 0 #bb5424
}
.btn--primary:active {
  transform:translateY(3px);
  box-shadow:0 1px 0 #bb5424
}
.btn--ghost:hover {
  background:#fff2e6;
  border-color:#dfbea0
}
.hint {
  font-size:9px;
  line-height:1.8;
  color:#ad9783;
  margin:10px 0 0
}
.generate-action .hint {
  text-align:center;
  overflow-wrap:anywhere
}
.history-section {
  border-top:1px solid #eee7df;
  margin:0 18px 15px;
  padding-top:5px
}
.history-section>summary {
  padding:10px 0;
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  font-size:10px;
  color:#9b826c
}
.history-tools {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:9px;
  color:#b39e8b;
  margin-bottom:7px
}
.task-list {
  margin:0;
  padding:0;
  list-style:none
}
.task {
  padding:10px 8px;
  border-bottom:1px solid #f0e9e1;
  border-radius:6px;
  cursor:pointer
}
.task:hover,.task.is-active {
  background:#fcf2e7
}
.task__top {
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center
}
.task__id {
  font-family:var(--font-display);
  font-size:9px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#a38d78
}
.task__status {
  font-size:8px;
  white-space:nowrap;
  color:#bc8a5e
}
.st--completed {
  color:#7e8d69
}
.st--failed {
  color:#b55e3b
}
.task__meta {
  font-size:9px;
  color:#b09b88;
  margin-top:4px
}
.task-list__empty {
  font-size:10px;
  padding:25px 10px;
  color:#ac9887;
  text-align:center
}
.panel--viewport {
  display:flex;
  flex-direction:column;
  background:#fffdfa;
  overflow:visible
}
.panel--viewport:before {
  content:'';
  position:absolute;
  top:22px;
  bottom:22px;
  left:-6px;
  width:12px;
  border-radius:8px;
  background:#eadfd1;
  z-index:-1
}
.panel--viewport:after {
  content:'';
  position:absolute;
  top:26px;
  bottom:26px;
  right:-6px;
  width:12px;
  border-radius:8px;
  background:#eadfd1;
  z-index:-1
}
.preview-head {
  min-height:78px;
  padding:17px 23px 14px
}
.preview-live {
  display:flex;
  align-items:center;
  gap:5px;
  font-size:9px;
  color:#a9927f
}
.preview-live i {
  width:5px;
  height:5px;
  background:#c2aa8c;
  border-radius:50%
}
.modes {
  display:flex;
  gap:5px;
  margin:0 20px 0;
  border-bottom:1px solid #ece4d9;
  padding-bottom:11px;
  position:relative;
  z-index:2
}
.mode {
  border:0;
  background:none;
  border-radius:7px;
  padding:8px 13px;
  color:#ae9681;
  font-size:10px;
  white-space:nowrap
}
.mode:hover {
  background:#fff3e7;
  color:#ad6839
}
.mode.is-active {
  color:#a35a29;
  background:#f7e8d7;
  font-weight:600
}
.stage {
  position:relative;
  min-height:300px;
  flex:1;
  isolation:isolate;
  background:radial-gradient(ellipse at 50% 48%,#fdfbf5 0%,#f5efe5 88%);
  margin:13px 14px 0;
  border:1px solid #eee6da;
  border-radius:12px;
  overflow:hidden
}
.stage:before {
  content:'';
  position:absolute;
  inset:0;
  background-image:radial-gradient(#d6c7b4 1px,transparent 1px);
  background-size:20px 20px;
  opacity:.32;
  z-index:-1
}
.stage canvas {
  display:block;
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  outline:0;
  cursor:grab;
  touch-action:none
}
.stage__id {
  position:absolute;
  top:15px;
  left:16px;
  right:16px;
  display:flex;
  gap:6px;
  align-items:center;
  color:#b3a18e;
  font-family:var(--font-display);
  font-size:8px;
  pointer-events:none;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis
}
.stage-id-dot {
  width:4px;
  height:4px;
  background:#c1ad93;
  border-radius:50%;
  flex-shrink:0
}
.stage__scale {
  position:absolute;
  bottom:17px;
  left:16px;
  display:flex;
  align-items:center;
  gap:8px;
  color:#b4a18b;
  font-size:8px;
  pointer-events:none
}
.stage__scale-bar {
  display:block;
  border-bottom:1px solid #ba9b7c;
  height:5px;
  border-left:1px solid #ba9b7c;
  border-right:1px solid #ba9b7c
}
.stage-gesture {
  position:absolute;
  bottom:16px;
  right:16px;
  font-size:8px;
  color:#b9a48e;
  pointer-events:none
}
.stage__empty {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
  padding:24px;
  pointer-events:none
}
.stage__empty h3 {
  font-size:17px;
  color:#a88c70;
  font-weight:500;
  margin:18px 0 8px
}
.stage__empty p {
  font-size:10px;
  color:#b7a28d;
  line-height:2;
  margin:0 0 17px
}
.stage__empty button {
  pointer-events:auto;
  font-size:10px;
  background:#fffdfa;
  border-color:#e9d8c4;
  color:#a5805b
}
.empty-blocks {
  height:63px;
  position:relative;
  width:110px;
  transform:rotate(-7deg)
}
.empty-blocks i {
  position:absolute;
  display:block;
  width:64px;
  height:28px;
  background:#ead5bd;
  border:1px solid #e2c7a9;
  box-shadow:0 7px 0 #d9bea0;
  border-radius:5px;
  transform:skewY(-12deg)
}
.empty-blocks i:before,.empty-blocks i:after {
  content:'';
  position:absolute;
  top:5px;
  width:17px;
  height:13px;
  border-radius:50%;
  background:#f3e4d2;
  box-shadow:0 2px 0 #cdb292
}
.empty-blocks i:before {
  left:9px
}
.empty-blocks i:after {
  right:9px
}
.empty-blocks i:nth-child(1) {
  left:10px;
  top:34px;
  background:#eee1d0
}
.empty-blocks i:nth-child(2) {
  left:32px;
  top:12px;
  background:#efd0ad
}
.empty-blocks i:nth-child(3) {
  left:44px;
  top:-10px;
  background:#f2c397;
  opacity:.75
}
.controls {
  padding:14px 21px 11px
}
.slider-pair {
  display:flex;
  gap:24px
}
.slider {
  display:block;
  flex:1;
  min-width:0
}
.slider__label {
  display:flex;
  justify-content:space-between;
  color:#a68b72;
  font-size:9px;
  gap:5px;
  align-items:center
}
.slider__label em {
  font-family:var(--font-display);
  font-style:normal;
  font-size:10px;
  color:#c0814d
}
.slider input {
  width:100%;
  accent-color:#db9460;
  height:3px;
  margin:12px 0 13px;
  display:block;
  cursor:pointer
}
.slider input:disabled {
  opacity:.4
}
.view-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:4px
}
.toggles {
  display:flex;
  gap:15px;
  align-items:center
}
.check {
  display:flex;
  align-items:center;
  gap:5px;
  cursor:pointer;
  color:#a88f79;
  font-size:9px;
  white-space:nowrap
}
.check input {
  accent-color:var(--orange);
  width:11px;
  height:11px;
  margin:0
}
.camera-buttons {
  display:flex;
  gap:4px
}
.mini {
  background:transparent;
  border:1px solid #e8ded2;
  border-radius:5px;
  color:#a58a72;
  padding:4px 7px;
  font-size:9px;
  min-height:27px
}
.mini:hover {
  background:#faecdc;
  border-color:#ddbd9e
}
.secondary-view-tools {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:13px;
  gap:10px
}
.secondary-view-tools>.btn {
  font-size:9px;
  min-height:29px;
  padding:5px 12px;
  background:#fbf4ea;
  border-color:#e9dac7;
  color:#b0835c
}
.view-options {
  position:relative
}
.view-options summary {
  font-size:9px;
  color:#baa18b;
  cursor:pointer;
  list-style:none
}
.view-options[open] {
  background:white;
  border:1px solid #e4d5c3;
  box-shadow:0 5px 12px #765a3622;
  border-radius:8px;
  padding:9px 12px;
  position:absolute;
  bottom:47px;
  right:20px;
  z-index:3
}
.view-options .check {
  margin-top:9px
}
.workspace-material {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid #eee3d5;
  border-radius:0 0 17px 17px;
  background:#faf1e5;
  padding:13px 20px;
  color:#bea184;
  font-size:8px;
  gap:8px;
  min-height:43px
}
.workspace-material .stud-row {
  gap:10px
}
.workspace-material .stud-row i {
  width:12px;
  height:12px
}
.technical-status {
  display:none
}
.panel--inspect {
  display:flex;
  flex-direction:column
}
.panel--inspect .panel__head {
  min-height:81px;
  padding-right:16px
}
.tick {
  font-size:8px;
  color:#b5a18d;
  white-space:nowrap
}
.readouts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin:0 18px 15px;
  background:#faf6ef;
  border:1px solid #eee3d4;
  border-radius:10px;
  box-shadow:inset 0 2px 3px #d5bea70d
}
.readout {
  padding:11px 12px;
  min-height:67px;
  min-width:0
}
.readout:nth-child(odd) {
  border-right:1px solid #eee3d4
}
.readout:nth-child(-n+2) {
  border-bottom:1px solid #eee3d4
}
.readout__k {
  display:block;
  font-size:8px;
  color:#b29a83
}
.readout__v {
  display:block;
  font-family:var(--font-display);
  font-size:12px;
  margin-top:4px;
  color:#80634b;
  line-height:1.6;
  overflow-wrap:anywhere
}
.readout-orange {
  color:var(--orange-dark);
  font-size:20px;
  line-height:1.2
}
.tabs {
  display:flex;
  border-bottom:1px solid #eee5d9;
  padding:0 14px;
  gap:0
}
.tab {
  background:none;
  border:0;
  color:#b19a83;
  font-size:10px;
  padding:12px 0;
  flex:1;
  position:relative
}
.tab.is-active {
  color:#ad6939;
  font-weight:600
}
.tab.is-active:after {
  content:'';
  position:absolute;
  left:10%;
  right:10%;
  bottom:-1px;
  height:2px;
  background:#db9b65;
  border-radius:3px
}
.tabbody {
  min-height:0;
  flex:1;
  overflow-y:auto;
  padding:0 15px 16px
}
.tabpane {
  display:none
}
.tabpane.is-active {
  display:block
}
.part-list {
  list-style:none;
  margin:0;
  padding:0
}
.part-group {
  position:sticky;
  top:0;
  padding:11px 2px 7px;
  background:#fff;
  font-size:9px;
  color:#bb9570;
  border-bottom:1px solid #f1e9de;
  margin-bottom:5px;
  z-index:1
}
.part {
  border:1px solid transparent;
  border-bottom:1px solid #f0e9e0;
  border-radius:7px;
  padding:11px 8px;
  margin:2px 0;
  cursor:pointer;
  transition:background .15s,border-color .15s
}
.part:hover {
  background:#fff8ee
}
.part.is-active {
  border-color:#e7bd96;
  background:#fff4e7
}
.part__top {
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:6px
}
.part__name {
  font-size:10px;
  color:#8b6c51;
  font-weight:500;
  line-height:1.6
}
.part__meta {
  font-size:8px;
  line-height:1.9;
  color:#b19a83
}
.part__sub {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-family:var(--font-display);
  font-size:8px;
  color:#bca38a;
  margin-top:5px
}
.axis-badge {
  font-family:var(--font-display);
  font-size:8px;
  color:#ba946c;
  padding:0 4px;
  border:1px solid #e3cbae;
  border-radius:3px;
  flex-shrink:0
}
.inspector-empty {
  text-align:center;
  list-style:none;
  padding:55px 0;
  color:#c0aa92
}
.inspector-empty>span {
  display:block;
  font-size:43px;
  color:#e6d5bf;
  font-weight:400;
  line-height:1;
  margin-bottom:18px
}
.inspector-empty strong {
  display:block;
  font-size:11px;
  font-weight:400;
  color:#aa8d70
}
.inspector-empty p {
  font-size:9px;
  line-height:1.9;
  color:#c0aa92
}
.pattern-view {
  padding:14px 1px
}
.pattern-view__title {
  font-size:10px;
  color:#a58161;
  line-height:1.8
}
.pattern-view__frame {
  border:1px solid #eee4d8;
  border-radius:8px;
  background:#fbf8f3;
  overflow:hidden;
  padding:6px
}
.pattern-view__frame img {
  max-width:100%;
  display:block;
  margin:auto
}
.pattern-view__empty {
  font-size:10px;
  color:#b6a18c;
  text-align:center;
  padding:50px 10px
}
.kv {
  font-size:9px;
  display:grid;
  grid-template-columns:78px 1fr;
  gap:9px 10px;
  line-height:1.9;
  margin-top:17px
}
.kv dt {
  color:#b7a18b
}
.kv dd {
  margin:0;
  color:#9b7f65;
  overflow-wrap:anywhere
}
.kv a {
  color:var(--orange-dark);
  border-bottom:1px dashed #dcad89
}
.bom {
  width:100%;
  border-collapse:collapse;
  font-size:10px;
  margin-top:13px;
  color:#9b7d60
}
.bom th {
  text-align:left;
  color:#b79a7f;
  font-weight:500;
  font-size:8px;
  padding:9px 8px;
  border-bottom:1px solid #e9dcca
}
.bom td {
  padding:8px;
  border-bottom:1px solid #f0e7db
}
.bom td:last-child,.bom th:last-child {
  text-align:right
}
.bom tfoot th {
  color:#a56332
}
.swatch {
  display:inline-block;
  width:14px;
  height:14px;
  border-radius:4px;
  border:1px solid #a68a6833;
  vertical-align:middle
}
.checks {
  padding:13px 0 0;
  list-style:none;
  font-size:9px;
  line-height:1.9;
  color:#b39a80
}
.checks li {
  display:flex;
  gap:7px;
  margin-bottom:10px
}
.checks li>span:first-child {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#c9bba8;
  margin-top:6px;
  flex-shrink:0
}
.checks .ok>span:first-child {
  background:#8f9b7a
}
.checks .no>span:first-child,.checks .warn>span:first-child {
  background:#d69a69
}
.downloads {
  margin-top:22px
}
.downloads a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0;
  border-top:1px solid #eee4d6;
  font-size:9px;
  color:#a6815f
}
.downloads a:hover {
  color:var(--orange-dark)
}
.stage__busy {
  position:absolute;
  inset:0;
  z-index:5;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#fffaf2f2;
  padding:30px;
  text-align:center;
  backdrop-filter:blur(5px)
}
.busy__status {
  font-size:15px;
  color:#a77446;
  margin:22px 0 15px
}
.busy__bar {
  height:4px;
  background:#ead8c3;
  width:70%;
  max-width:260px;
  border-radius:5px;
  overflow:hidden
}
.busy__bar>span {
  height:100%;
  display:block;
  background:var(--orange);
  border-radius:4px;
  transition:width .4s
}
.busy__msg {
  font-size:10px;
  line-height:1.9;
  color:#b19170;
  margin-top:15px;
  max-width:330px;
  overflow-wrap:anywhere
}
.busy-brick {
  display:flex;
  gap:6px;
  padding:11px;
  border-radius:8px;
  background:#f5cba3;
  box-shadow:0 6px 0 #d29d6f;
  animation:brick-bob 1.2s ease-in-out infinite
}
.busy-brick i {
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fbe0c4;
  box-shadow:0 2px 0 #d1a478
}
.studio-footer {
  display:flex;
  justify-content:space-between;
  padding:16px 30px 13px;
  font-size:8px;
  color:#b5a390;
  gap:20px
}
.studio-footer i {
  font-style:normal;
  margin:0 7px
}
.completion-dialog {
  border:1px solid #e9d8c3;
  background:#fffdf9;
  padding:42px 35px 29px;
  max-width:470px;
  width:calc(100% - 36px);
  border-radius:21px;
  box-shadow:0 7px 0 #d5b89a,0 28px 90px #54362044;
  text-align:center;
  color:var(--ink);
  overflow:visible;
  animation:brick-enter .25s both
}
.completion-dialog::backdrop {
  background:#4a382d5e;
  backdrop-filter:blur(4px)
}
.dialog-studs {
  position:absolute;
  top:-11px;
  left:calc(50% - 54px);
  gap:24px
}
.dialog-studs i {
  width:20px;
  height:20px;
  background:#f4d1ad;
  box-shadow:0 3px 0 #cfa37a,inset 0 2px 1px #fff0de
}
.dialog-close {
  position:absolute;
  right:17px;
  top:12px;
  border:0;
  background:none;
  color:#bba38b;
  font-size:24px
}
.completion-check {
  display:grid;
  place-items:center;
  margin:0 auto 18px;
  width:52px;
  height:52px;
  border-radius:14px;
  background:#f9e5cf;
  box-shadow:0 4px 0 #e3b98e;
  color:#bd7943;
  font-size:25px
}
.completion-dialog .eyebrow {
  font-size:9px
}
.completion-dialog h2 {
  font-size:21px;
  line-height:1.5;
  margin:14px 0
}
.completion-dialog>p:not(.eyebrow) {
  font-size:12px;
  color:#a68a71
}
.completion-stats {
  padding:10px 15px;
  background:#f8efe4;
  border:1px solid #ecddcb;
  border-radius:8px;
  font-family:var(--font-display);
  font-size:11px!important
}
.dialog-actions {
  display:flex;
  gap:12px;
  margin:24px 0 18px
}
.dialog-actions .button {
  flex:1;
  white-space:nowrap;
  font-size:11px;
  padding:12px 16px
}
.completion-dialog>small {
  font-size:9px;
  color:#bda48b
}
* {
  scrollbar-width:thin;
  scrollbar-color:#dacebd transparent
}
::-webkit-scrollbar {
  width:5px;
  height:5px
}
::-webkit-scrollbar-thumb {
  background:#dccdbc;
  border-radius:5px
}
::-webkit-scrollbar-track {
  background:transparent
}
@keyframes brick-bob {
  0%,100% {
    transform:translateY(0) rotate(-5deg)
  }
  50% {
    transform:translateY(-8px) rotate(5deg)
  }
}
@media(min-width:1600px) {
  .bench {
    grid-template-columns:320px minmax(400px,1fr) 330px;
    gap:22px;
    padding-left:32px;
    padding-right:32px
  }
  .panel__head h2 {
    font-size:17px
  }
  .intake {
    padding-left:22px;
    padding-right:22px
  }
  .panel__head {
    padding-left:24px
  }
  .readout__v {
    font-size:14px
  }
  .readout-orange {
    font-size:23px
  }
  .part__name {
    font-size:11px
  }
  .part__meta {
    font-size:9px
  }
  .field-help {
    font-size:10px!important
  }
  .field>span {
    font-size:12px
  }
  .field select {
    font-size:12px
  }
}
@media(max-width:1180px) and (min-width:951px) {
  .bench {
    grid-template-columns:265px minmax(300px,1fr) 255px;
    gap:12px;
    padding-left:16px;
    padding-right:16px
  }
  .intake {
    padding:0 14px 15px
  }
  .panel__head {
    padding-left:17px;
    padding-right:17px
  }
  .panel__head h2 {
    font-size:14px
  }
  .craft-option {
    padding:11px 8px;
    gap:6px
  }
  .craft-option strong span {
    display:none
  }
  .craft-icon {
    width:30px
  }
  .readouts {
    margin-left:12px;
    margin-right:12px
  }
  .readout {
    padding:10px
  }
  .readout__v {
    font-size:11px
  }
  .readout-orange {
    font-size:19px
  }
  .controls {
    padding-left:15px;
    padding-right:15px
  }
  .mode {
    padding:7px 9px;
    font-size:9px
  }
  .view-actions {
    flex-wrap:wrap
  }
  .camera-buttons {
    margin-left:auto
  }
  .workspace-material>span:nth-child(2) {
    font-size:7px
  }
  .kv {
    grid-template-columns:65px 1fr;
    font-size:8px
  }
}
@media(max-width:950px) {
  .studio-page .site-header {
    padding:0 24px
  }
  .workspace-heading {
    padding:0 24px;
    height:61px
  }
  .workspace-heading ol {
    gap:14px
  }
  .bench {
    height:auto;
    min-height:0;
    grid-template-columns:290px minmax(0,1fr);
    align-items:start;
    gap:18px;
    padding:0 18px 16px
  }
  .panel {
    height:auto
  }
  .panel--intake {
    grid-column:1;
    grid-row:1/3;
    max-height:1200px
  }
  .panel--viewport {
    grid-column:2;
    grid-row:1;
    height:650px
  }
  .panel--inspect {
    grid-column:2;
    grid-row:2;
    min-height:400px;
    max-height:550px
  }
  .tabbody {
    min-height:200px;
    max-height:350px
  }
  .workspace-heading .workspace-tag {
    display:none
  }
  .workspace-heading>div>a,.workspace-heading>div>span:not(.workspace-tag) {
    display:none
  }
  .controls {
    padding:14px
  }
  .modes {
    margin-left:14px;
    margin-right:14px
  }
  .mode {
    padding:8px;
    font-size:9px
  }
  .view-actions {
    flex-wrap:wrap
  }
  .camera-buttons {
    margin-left:auto
  }
  .workspace-material {
    padding:12px 15px
  }
  .studio-footer {
    padding:16px 24px
  }
  .panel--intake .craft-option strong span {
    font-size:7px
  }
}
@media(max-width:650px) {
  .studio-page .site-header {
    height:70px;
    padding:0 17px
  }
  .workspace-heading {
    height:61px;
    padding:0 18px
  }
  .workspace-heading h1 {
    font-size:15px
  }
  .workspace-heading ol {
    gap:10px;
    font-size:0
  }
  .workspace-heading ol li {
    gap:0
  }
  .workspace-heading ol b {
    font-size:10px;
    width:20px;
    height:20px
  }
  .bench {
    display:flex;
    flex-direction:column;
    padding:0 12px 18px;
    gap:20px
  }
  .panel {
    width:100%;
    height:auto;
    max-height:none
  }
  .panel--viewport {
    order:1;
    height:550px;
    min-height:550px
  }
  .panel--intake {
    order:2;
    overflow:visible;
    scrollbar-gutter:auto
  }
  .panel--inspect {
    order:3;
    min-height:420px;
    max-height:680px
  }
  .stage {
    min-height:260px
  }
  .stage__empty h3 {
    font-size:16px
  }
  .panel__head {
    min-height:74px
  }
  .preview-head {
    padding-top:15px;
    padding-bottom:12px
  }
  .controls {
    padding:13px 18px 11px
  }
  .view-actions {
    flex-wrap:nowrap
  }
  .modes {
    padding-bottom:8px
  }
  .mode {
    font-size:10px;
    padding:7px 10px
  }
  .workspace-material {
    min-height:40px;
    padding:11px 18px
  }
  .panel--intake .intake {
    padding:0 21px 20px
  }
  .craft-choices {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px
  }
  .craft-choices legend {
    grid-column:1/-1
  }
  .craft-option {
    padding:12px 9px;
    flex-direction:column;
    align-items:start;
    gap:8px;
    margin:0
  }
  .craft-option>i {
    position:absolute;
    right:12px;
    top:13px
  }
  .craft-option strong span {
    display:none
  }
  .craft-icon {
    width:35px;
    height:33px
  }
  .craft-option strong {
    font-size:13px
  }
  .craft-option small {
    font-size:9px
  }
  .effect-guide {
    margin:16px 0 23px
  }
  .effect-guide strong,.effect-guide p {
    font-size:11px
  }
  .field-help {
    font-size:10px!important
  }
  .field>span {
    font-size:12px
  }
  .field select,.field input {
    height:43px;
    font-size:12px
  }
  .quick-sizes button,.quick-layers button {
    font-size:11px;
    padding:9px 5px
  }
  .quick-sizes small {
    font-size:9px
  }
  .btn--primary {
    font-size:13px;
    height:48px
  }
  .generate-action>p:first-child {
    font-size:10px
  }
  .hint {
    font-size:10px
  }
  .tabbody {
    max-height:430px
  }
  .readout__v {
    font-size:14px
  }
  .readout-orange {
    font-size:22px
  }
  .part__name {
    font-size:12px
  }
  .part__meta {
    font-size:10px
  }
  .part-group {
    font-size:10px
  }
  .tabs {
    gap:4px
  }
  .tab {
    font-size:11px
  }
  .studio-footer {
    flex-direction:column;
    gap:5px;
    font-size:9px;
    padding:3px 20px 18px
  }
  .history-section {
    margin-left:21px;
    margin-right:21px
  }
}
/* Readable guidance and an always-available creation action. */
.workspace-heading .is-done {
  color:#9b8b78
}
.field-help {
  font-size:10px!important;
  color:#967b63
}
.effect-guide strong {
  font-size:11px;
  color:#8f6848
}
.effect-guide p {
  font-size:10px;
  color:#9b8069
}
.field select {
  font-size:12px
}
.panel-kicker {
  color:#a1856d
}
.craft-option small {
  color:#977a62
}
.generate-action {
  position:sticky;
  bottom:-15px;
  background:#fff;
  z-index:4;
  padding:13px 0 12px;
  box-shadow:0 -8px 15px #fffffff5
}
.generate-action .hint {
  color:#9f836a
}
.part__meta {
  color:#a1876f
}
@media(max-width:650px) {
  .studio-page .generate-action {
    position:static;
    bottom:auto;
    box-shadow:none;
    margin-top:0
  }
}

/* 参数滚动区和独立操作底栏。说明通过问号浮层读取。 */
.studio-page .panel--intake{display:flex;flex-direction:column;overflow:hidden;scrollbar-gutter:auto;min-height:0}
.studio-page .panel--intake .panel__head{flex-shrink:0;min-height:68px;padding-top:15px;padding-bottom:12px}
.studio-page .panel--intake .intake{display:flex;flex-direction:column;flex:1;min-height:0;padding:0;overflow:hidden}
.intake-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 18px 18px;scrollbar-gutter:stable}
.studio-page .generate-action{position:relative;bottom:auto;flex-shrink:0;margin:0;padding:12px 18px;background:#fffdf9;border-top:1px solid #efdfcc;box-shadow:0 -5px 15px #70503208;z-index:5}
.studio-page .generate-action>p:first-child{margin:0 0 7px;font-size:10px}
.studio-page .generate-action .hint{margin:7px 0 0;line-height:1.5}
.studio-page .credit-quote{margin:0 0 9px;padding-right:24px}
.studio-page .credit-quote p{margin:0;font-size:11px}
.studio-page .help-source{display:none!important}
.has-studio-help{position:relative}.studio-help{display:inline-grid!important;place-items:center;width:17px;height:17px;min-width:17px;border:1px solid #dfc7ac;border-radius:50%;font:600 11px/1 var(--font-body);color:#a5754d;background:#fff9ef;cursor:help;vertical-align:middle;margin-left:7px;user-select:none}
.field>.studio-help,.credit-quote>.studio-help{position:absolute;right:0;top:0;margin:0}
.studio-help:hover,.studio-help:focus-visible,.studio-help[aria-expanded=true]{background:#fae5ce;border-color:#e6a66c;color:#ae5424;outline:2px solid #f6d8b8;outline-offset:2px}
.studio-help-popup{position:fixed;z-index:180;background:#fffdf7;border:1px solid #e8c7a3;border-radius:9px;padding:12px 14px;box-shadow:0 6px 25px #543c2526;color:#846448;font-size:12px;line-height:1.75;pointer-events:none}
.input-source-heading{margin-bottom:10px}.studio-page .craft-choices{margin-bottom:20px}.studio-page .settings-section{margin-top:0}.studio-page .field{margin-bottom:14px}
@media(max-width:650px){
 .studio-page{padding-bottom:var(--generate-dock-height,160px)}
 .studio-page .panel--intake{height:min(700px,calc(100dvh - 130px));min-height:400px;overflow:hidden}
 .studio-page .generate-action{position:fixed;bottom:0;left:0;right:0;z-index:35;border-top:2px solid #e4c6a4;border-radius:13px 13px 0 0;padding:10px 18px max(12px,env(safe-area-inset-bottom));box-shadow:0 -5px 25px #6b4e2f14}
 .studio-page .generate-action .credit-quote{margin-bottom:7px}.studio-page .generate-action .btn{height:44px}.studio-page .generate-action .hint:empty{display:none}
 .intake-scroll{padding:0 18px 20px}
}

@media(min-width:651px) and (max-width:950px){.studio-page .panel--intake{height:760px;position:sticky;top:12px}}

.studio-page .credit-quote{padding-top:0;border-top:0}
@media(max-width:700px){.studio-page .site-header{height:auto;min-height:74px;flex-wrap:wrap;padding:12px 18px 0;gap:0 15px}.studio-page .site-nav{gap:12px}}

/* 模型是工作台的主画布：页面自然滚动，侧栏独立收起。 */
.sidebar-content{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}
.sidebar-toggle,.sidebar-rail-title{display:none}
@media(min-width:951px){
 .studio-page .bench{--intake-width:300px;--inspect-width:302px;--sidebar-height:clamp(560px,calc(100dvh - 172px),920px);grid-template-columns:var(--intake-width) minmax(0,1fr) var(--inspect-width);height:auto;min-height:0;align-items:start}
 .studio-page .bench.is-intake-collapsed{--intake-width:52px}
 .studio-page .bench.is-inspect-collapsed{--inspect-width:52px}
 .studio-page .panel--viewport{height:auto;min-height:0}
 .studio-page .stage{height:clamp(540px,36vw,680px);min-height:540px;flex:none}
 .studio-page .panel--intake,.studio-page .panel--inspect{height:var(--sidebar-height);position:sticky;top:16px}
 .studio-page .panel--intake .panel__head,.studio-page .panel--inspect .panel__head{padding-right:48px;min-height:81px}
 .sidebar-toggle{position:absolute;display:grid;place-items:center;right:10px;top:21px;z-index:6;width:30px;height:32px;padding:5px;border:1px solid #dfbb97;border-radius:5px;background:#fff5e7;color:#a56c3f;cursor:pointer;box-shadow:0 2px 0 #e6c8a6;transition:background .16s,box-shadow .16s}
 .sidebar-toggle:hover{background:#f9e0bf;box-shadow:0 3px 0 #d8ad80}
 .sidebar-toggle:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
 .sidebar-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
 .panel--inspect .tick{max-width:48px;white-space:normal;text-align:right}
 .is-collapsed .sidebar-content{display:none}
 .is-collapsed .sidebar-toggle{right:3px;top:21px}
 .is-collapsed .sidebar-toggle svg{transform:rotate(180deg)}
 .is-collapsed .sidebar-rail-title{display:block;position:absolute;top:80px;left:9px;writing-mode:vertical-rl;letter-spacing:5px;font-size:12px;color:#a07751}
}
@media(min-width:1600px){.studio-page .bench{--intake-width:320px;--inspect-width:330px}}
@media(min-width:951px) and (max-width:1180px){.studio-page .bench{--intake-width:260px;--inspect-width:260px}}
@media(min-width:651px) and (max-width:950px){.studio-page .panel--viewport{height:auto}.studio-page .stage{height:540px;min-height:540px;flex:none}}

