/* The owned reference occupies the mirror until a prepared private base exists. */
.fit-studio-self { width: 100%; min-height: 440px; height: 100%; display: flex; align-items: center; justify-content: center; }
.fit-studio-self img { display: block; width: 100%; height: 100%; max-height: 660px; object-fit: contain; }
.fit-studio-controls > summary, .fit-studio-outfit > summary { cursor: pointer; padding: 10px 0; }
.fit-studio-controls > div { padding-top: 12px; }
@media (max-width: 720px) {
  .fit-studio-self { min-height: 340px; }
  .fit-studio-self img { max-height: 62svh; }
}
/* Real-person studio viewport: contact sheets are four adjacent, true camera views. */
body.rooms-ready #fittingRoom .fit-real-studio {
  --studio-ink: #40352d;
  margin: 0;
  padding: clamp(14px, 1.7vw, 22px);
  border: 1px solid #d9caba;
  background: #f5eee4;
}
body.rooms-ready #fittingRoom .fit-real-studio .fit-stage-head { display:block; margin-bottom:12px; }
body.rooms-ready #fittingRoom .fit-real-studio .fit-stage-head > div:last-child { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
body.rooms-ready #fittingRoom .fit-real-studio h2 { margin: 4px 0 0; font: 400 clamp(27px, 2.4vw, 35px)/1 var(--room-display, Georgia, serif); color: var(--studio-ink); }
body.rooms-ready #fittingRoom .fit-studio-viewport {
  position: relative;
  width: min(100%, 500px);
  height: clamp(390px, 54vh, 610px);
  margin: 0 auto;
  overflow: hidden;
  background: #e8e2d9;
  border: 1px solid #d1c5b7;
}
body.rooms-ready #fittingRoom .fit-studio-image {
  position: absolute;
  top: 0;
  left: 50%;
  height: calc(100% - 55px);
  width: auto;
  max-width: 100%;
  aspect-ratio: var(--studio-panel-ratio, .5);
  transform: translateX(-50%);
  overflow: hidden;
}
body.rooms-ready #fittingRoom .fit-studio-image img {
  position: absolute;
  top: 0;
  left: 50%;
  width: auto;
  height: 100%;
  max-width: none;
  transform: translateX(calc(-50% + var(--studio-shift, 0%)));
  transition: opacity .24s ease;
}
body.rooms-ready #fittingRoom .fit-studio-caption {
  position: absolute;
  z-index: 1;
  right: 10px;
  bottom: 10px;
  left: 10px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  background: rgba(250,247,240,.91);
  color: #51453a;
  font: 12px/1.45 var(--room-mono, monospace);
  letter-spacing: .03em;
}
body.rooms-ready #fittingRoom .fit-studio-angles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  width: min(100%, 500px);
  margin: 10px auto 0;
}
body.rooms-ready #fittingRoom .fit-studio-angles button {
  min-height: 40px;
  border: 1px solid #d5c7b7;
  background: #fbf7ef;
  color: #5e5044;
  font: 13px var(--room-mono, monospace);
  cursor: pointer;
}
body.rooms-ready #fittingRoom .fit-studio-angles button[aria-pressed="true"] {
  border-color: #75402b;
  background: #75402b;
  color: #fff8ed;
}
body.rooms-ready #fittingRoom .fit-studio-angles button:disabled { opacity:.55; cursor:default; }
body.rooms-ready #fittingRoom .fit-studio-photo-needed { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; height:100%; padding:24px; gap:14px; }
body.rooms-ready #fittingRoom .fit-studio-photo-needed h3 { font:400 29px/1.15 var(--room-display,Georgia,serif); margin:0; }
body.rooms-ready #fittingRoom .fit-studio-photo-needed p { font-size:14px; line-height:1.6; margin:0; }
body.rooms-ready #fittingRoom .fit-studio-reference { display:flex; align-items:center; gap:12px; font-size:12px; line-height:1.5; }
body.rooms-ready #fittingRoom .fit-studio-reference img { display:block; width:78px; height:120px; object-fit:contain; background:#f4f0e9; }
body.rooms-ready #fittingRoom .fit-studio-status {
  width: min(100%, 500px);
  margin: 11px auto 0;
  padding: 10px 12px;
  border-left: 2px solid #9d7957;
  background: #eee4d7;
  color: #615448;
  font-size: 13px;
  line-height: 1.55;
}
body.rooms-ready #fittingRoom .fit-studio-status[data-kind="error"] { border-color: #9b493c; color: #7c392f; }
body.rooms-ready #fittingRoom .fit-studio-controls {
  display: grid;
  gap: 9px;
  width: min(100%, 500px);
  margin: 12px auto 0;
}
body.rooms-ready #fittingRoom .fit-studio-controls .fit-field { font-size: 13px; }
body.rooms-ready #fittingRoom .fit-studio-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: #66594c;
  font-size: 13px;
  line-height: 1.5;
}
body.rooms-ready #fittingRoom .fit-studio-consent input { margin-top: 2px; accent-color: #75402b; }
body.rooms-ready #fittingRoom .fit-studio-generate { width: 100%; min-height: 45px; }
body.rooms-ready #fittingRoom .fit-studio-outfit {
  width: min(100%, 500px);
  margin: 13px auto 0;
  padding-top: 12px;
  border-top: 1px solid #d8c9b8;
}
body.rooms-ready #fittingRoom .fit-studio-outfit h3 {
  margin: 0 0 8px;
  color: #524438;
  font: 400 21px var(--room-display, Georgia, serif);
}
body.rooms-ready #fittingRoom .fit-studio-outfit ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.rooms-ready #fittingRoom .fit-studio-outfit li {
  min-width: 0;
  color: #746557;
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
body.rooms-ready #fittingRoom .fit-studio-outfit li strong {
  display: block;
  color: #55483c;
  font: 12px var(--room-mono, monospace);
  letter-spacing: .05em;
  text-transform: uppercase;
}
body.rooms-ready #fittingRoom .fit-studio-outfit li > span,
body.rooms-ready #fittingRoom .fit-studio-outfit li > button { display:block; }
body.rooms-ready #fittingRoom .fit-studio-outfit li > button { padding:6px 0; min-height:36px; font-size:12px; text-align:left; }
body.rooms-ready #fittingRoom .fit-studio-action-row { display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin-top:12px; }
body.rooms-ready #fittingRoom .fit-manual-fallback { margin-top: 11px; padding: 10px 12px; border: 1px solid #d9caba; background: #f8f3eb; }
body.rooms-ready #fittingRoom .fit-manual-fallback > summary { color:#795039; font-size:13px; cursor:pointer; }
body.rooms-ready #fittingRoom .fit-manual-fallback .fit-stage-wrap { margin-top:10px; }
body.rooms-ready #fittingRoom .fit-manual-fallback .fit-stage-head { display:flex; flex-wrap:wrap; gap:12px; }
@media (max-width: 650px) {
  body.rooms-ready #fittingRoom .fit-studio-viewport { width:100%; height:min(460px, 114vw); min-height:350px; }
  body.rooms-ready #fittingRoom .fit-studio-outfit ul { grid-template-columns:1fr 1fr; }
  body.rooms-ready #fittingRoom .fit-studio-angles button { min-height:44px; }
}
@media (prefers-reduced-motion: reduce) {
  body.rooms-ready #fittingRoom .fit-studio-image img { transition:none; }
}

/* PHOTO SHOOT's realistic Gemini result remains the hero image; controls sit
   in a quiet, legible frame below it rather than competing with the person. */
body.rooms-ready #fittingRoom .fit-real-studio {
  min-width: 0;
  padding: clamp(16px, 2vw, 25px);
  border-color: #d5c4b1;
  background:
    linear-gradient(145deg, rgba(255, 252, 246, .84), rgba(241, 232, 218, .82)),
    #f5eee4;
  box-shadow: 0 12px 32px rgba(66, 47, 33, .055);
}

body.rooms-ready #fittingRoom .fit-real-studio .fit-stage-head {
  align-items: flex-end;
  margin-bottom: 16px;
}

body.rooms-ready #fittingRoom .fit-real-studio h2 {
  font-size: clamp(30px, 3vw, 42px);
  letter-spacing: -.02em;
}

body.rooms-ready #fittingRoom .fit-real-studio .fit-stage-head > div:last-child {
  justify-content: flex-end;
  margin-top: 0;
}

body.rooms-ready #fittingRoom .fit-studio-viewport {
  width: min(100%, 700px);
  height: clamp(520px, 69vh, 790px);
  min-height: 0;
  border-color: #cbb9a5;
  background:
    radial-gradient(ellipse at 50% 28%, rgba(255, 254, 250, .88), transparent 58%),
    repeating-linear-gradient(90deg, rgba(104, 82, 60, .025) 0 1px, transparent 1px 72px),
    #e6ddd1;
  box-shadow: inset 0 0 0 8px rgba(255, 250, 241, .22);
}

body.rooms-ready #fittingRoom .fit-studio-image {
  height: calc(100% - 62px);
}

body.rooms-ready #fittingRoom .fit-studio-caption {
  right: 12px;
  bottom: 12px;
  left: 12px;
  min-height: 38px;
  align-items: center;
  padding: 9px 12px;
  border: 1px solid rgba(127, 101, 76, .18);
  background: rgba(251, 247, 239, .96);
  font-size: 11px;
}

body.rooms-ready #fittingRoom .fit-studio-angles,
body.rooms-ready #fittingRoom .fit-studio-status,
body.rooms-ready #fittingRoom .fit-studio-outfit,
body.rooms-ready #fittingRoom .fit-studio-controls,
body.rooms-ready #fittingRoom .fit-studio-action-row,
body.rooms-ready #fittingRoom .fit-real-studio > .fit-disclaimer {
  width: min(100%, 700px);
}

body.rooms-ready #fittingRoom .fit-studio-angles {
  gap: 7px;
  margin-top: 12px;
}

body.rooms-ready #fittingRoom .fit-studio-angles button {
  min-height: 46px;
  border-color: #d1c0ad;
  background: #fbf7ef;
  color: #57483b;
  font: 600 12px/1.2 var(--room-mono, monospace);
  transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

body.rooms-ready #fittingRoom .fit-studio-angles button:hover:not(:disabled) {
  border-color: var(--fit-accent);
  background: #f0e3d3;
}

body.rooms-ready #fittingRoom .fit-studio-angles button[aria-pressed="true"] {
  border-color: var(--fit-accent-dark);
  background: var(--fit-accent-dark);
  color: #fff8ed;
}

body.rooms-ready #fittingRoom .fit-studio-angles button:disabled {
  opacity: .68;
  color: #74685d;
}

body.rooms-ready #fittingRoom .fit-studio-photo-needed {
  align-items: center;
  overflow-y: auto;
  padding: clamp(20px, 4vw, 42px);
  background:
    radial-gradient(ellipse at 50% 0, rgba(255, 252, 245, .85), transparent 68%),
    #e9e0d5;
  text-align: center;
}

body.rooms-ready #fittingRoom .fit-studio-photo-needed h3 {
  max-width: 480px;
  color: #44372e;
  font-size: clamp(30px, 3vw, 40px);
}

body.rooms-ready #fittingRoom .fit-studio-photo-needed p {
  max-width: 520px;
  margin-inline: auto;
  color: #625447;
  font-size: 14px;
}

body.rooms-ready #fittingRoom .fit-studio-reference {
  width: min(100%, 420px);
  justify-content: center;
  padding: 10px;
  border: 1px solid rgba(117, 89, 64, .18);
  background: rgba(255, 251, 244, .75);
  text-align: left;
}

body.rooms-ready #fittingRoom .fit-studio-reference img {
  flex: 0 0 auto;
  width: 82px;
  height: 126px;
}

body.rooms-ready #fittingRoom .fit-studio-photo-needed > .fit-button {
  width: min(100%, 360px);
}

body.rooms-ready #fittingRoom .fit-studio-status {
  margin-top: 13px;
  padding: 12px 14px;
  border: 1px solid #dfd0bc;
  border-left: 3px solid #9d7957;
  background: #f8f1e7;
  color: #55483c;
  font-size: 14px;
}

body.rooms-ready #fittingRoom .fit-studio-outfit {
  margin-top: 17px;
  padding: 16px 0 0;
  border-top-color: #d3c2ae;
}

body.rooms-ready #fittingRoom .fit-studio-outfit h3 {
  margin-bottom: 11px;
  font-size: 26px;
}

body.rooms-ready #fittingRoom .fit-studio-outfit ul {
  gap: 8px;
}

body.rooms-ready #fittingRoom .fit-studio-outfit li {
  padding: 10px 11px;
  border: 1px solid #e1d4c4;
  background: rgba(255, 252, 246, .72);
  color: #65574b;
  font-size: 14px;
}

body.rooms-ready #fittingRoom .fit-studio-outfit li strong {
  margin-bottom: 5px;
  color: var(--fit-accent-dark);
  font-size: 10px;
}

body.rooms-ready #fittingRoom .fit-studio-outfit li > button {
  min-height: 40px;
}

body.rooms-ready #fittingRoom .fit-studio-outfit > .fit-meta {
  margin: 10px 0 0;
  color: #65574b;
  font-size: 14px;
  line-height: 1.55;
}

body.rooms-ready #fittingRoom .fit-studio-controls {
  gap: 12px;
  margin-top: 17px;
  padding: 16px;
  border: 1px solid #d8c8b6;
  background: rgba(248, 242, 232, .9);
}

body.rooms-ready #fittingRoom .fit-studio-controls .fit-field {
  font-size: 14px;
}

body.rooms-ready #fittingRoom .fit-studio-controls select,
body.rooms-ready #fittingRoom .fit-studio-controls input:not([type="checkbox"]) {
  min-height: 46px;
  border-color: #d1c0ad;
  background: #fffcf6;
  color: var(--fit-ink);
  font: 14px/1.4 var(--room-body, sans-serif);
}

body.rooms-ready #fittingRoom .fit-studio-consent {
  align-items: flex-start;
  padding: 12px;
  border: 1px solid #dfd1c0;
  background: #fffcf6;
  color: #594b3f;
  font-size: 14px;
  line-height: 1.6;
}

body.rooms-ready #fittingRoom .fit-studio-consent input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 2px 2px 0 0;
}

body.rooms-ready #fittingRoom .fit-studio-generate {
  min-height: 50px;
  font-size: 11px;
}

body.rooms-ready #fittingRoom .fit-studio-auto-consent {
  border-style: dashed;
  background: #f5eee4;
}

body.rooms-ready #fittingRoom .fit-real-studio > .fit-disclaimer {
  margin: 12px auto 0;
  color: #716354;
  font-size: 12px;
  line-height: 1.6;
}

body.rooms-ready #fittingRoom .fit-studio-action-row {
  margin-inline: auto;
}

body.rooms-ready #fittingRoom .fit-manual-fallback {
  margin-top: 0;
}

@media (max-width: 760px) {
  body.rooms-ready #fittingRoom .fit-real-studio {
    padding: 14px;
  }

  body.rooms-ready #fittingRoom .fit-real-studio .fit-stage-head {
    display: grid;
    gap: 10px;
  }

  body.rooms-ready #fittingRoom .fit-real-studio .fit-stage-head > div:last-child {
    justify-content: flex-start;
  }

  body.rooms-ready #fittingRoom .fit-studio-viewport {
    width: 100%;
    height: min(680px, 132vw);
    min-height: 440px;
  }

  body.rooms-ready #fittingRoom .fit-studio-caption {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
    font-size: 10px;
  }

  body.rooms-ready #fittingRoom .fit-studio-outfit ul {
    grid-template-columns: minmax(0, 1fr);
  }

  body.rooms-ready #fittingRoom .fit-studio-controls {
    padding: 12px;
  }

  body.rooms-ready #fittingRoom .fit-studio-action-row {
    align-items: stretch;
    flex-direction: column;
  }

  body.rooms-ready #fittingRoom .fit-studio-action-row > * {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 390px) {
  body.rooms-ready #fittingRoom .fit-studio-angles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
