/* Craft polish informed by unslop by Damir Sokolovsky (@heydamir), CC BY 4.0.
   https://github.com/heydamir/unslop */
/* Studio chrome follows the lab; viewport transforms, canvas and tool state
   remain managed by the native 3D editor. */
html[data-aim-local] .al-studio-shell {
  --ink: var(--rc-ink);
  --muted: var(--rc-slate);
  --line: var(--rc-rule);
  --al-studio-danger: var(--rc-night-danger);
  font-size: var(--rc-fs-13);
  color: var(--rc-ink);
}
html[data-aim-local] .al-studio-shell.hall-light { --al-studio-danger: var(--rc-danger); }
html[data-aim-local] .al-studio-shell :is(.al-studio-topbar, .al-studio-topbar-lead) {
  background: var(--rc-paper);
  border-color: var(--rc-rule-strong);
}
html[data-aim-local] .al-studio-topbar::after { display: none; }
@media (min-width: 1600px) {
  html[data-aim-local] .al-studio-shell .al-studio-topbar {
    grid-template-columns: max-content minmax(0, 1fr) max-content;
    block-size: auto;
    min-block-size: 60px;
  }
  html[data-aim-local] .al-studio-shell .al-studio-topbar-mid {
    grid-template-columns: minmax(0, 1fr) auto max-content;
    padding-block: var(--rc-space-1);
  }
  html[data-aim-local] .al-studio-shell .al-studio-scenebar {
    display: grid;
    grid-template-columns: minmax(0, max-content) max-content;
    row-gap: 2px;
  }
  html[data-aim-local] .al-studio-scenebar .al-studio-save { grid-area: 1 / 2; }
  html[data-aim-local] .al-studio-scenebar .al-studio-dirty {
    grid-row: 2;
    grid-column: 1 / -1;
    white-space: normal;
  }
  html[data-aim-local] .al-studio-shell .al-tl { --al-tl-name: 184px; }
}
html[data-aim-local] .al-studio-topbar-lead { min-inline-size: 0; }
html[data-aim-local] .al-studio-brand-mark > span { min-inline-size: 0; }
html[data-aim-local] .al-studio-brand-mark b {
  overflow: hidden;
  text-overflow: ellipsis;
  font: 700 var(--rc-fs-17)/1.2 var(--rc-font-condensed) !important;
}
html[data-aim-local] .al-studio-brand-mark i {
  border: 0;
  border-radius: 0;
  background: url('/brand/mark-white.png') center / contain no-repeat !important;
}
html[data-aim-local] .al-studio-shell.hall-light .al-studio-brand-mark i {
  background-image: url('/brand/mark-black.png') !important;
}
html[data-aim-local] .al-studio-brand-mark i > svg,
html[data-aim-local] .al-studio-guide .al-studio-guide-pre { display: none; }
html[data-aim-local] .al-studio-topbar :is(.al-studio-scene-btn, .al-studio-btn, .al-studio-save, .al-studio-guide) {
  min-block-size: 44px;
  padding-inline: var(--rc-space-4);
  border: 1px solid var(--rc-rule-strong);
  border-radius: var(--rc-r-small) !important;
  background: var(--rc-paper-raise);
  color: var(--rc-ink);
  box-shadow: none;
  font: 600 var(--rc-fs-15)/1.2 var(--rc-font-body) !important;
}
html[data-aim-local] .al-studio-topbar :is(.al-studio-cbtn, .pwb, .pwb-main, .pwb-more) {
  min-block-size: 44px;
}
html[data-aim-local] .al-studio-topbar :is(.al-studio-cbtn, .pwb-main) {
  padding-inline: var(--rc-space-4);
}
html[data-aim-local] .al-studio-topbar .al-studio-cbtn {
  font: 600 var(--rc-fs-13)/1.2 var(--rc-font-body) !important;
}
html[data-aim-local] .al-studio-topbar :is(.al-studio-back, .al-studio-theme-btn, .pwb-more) {
  min-inline-size: 44px;
  min-block-size: 44px;
  padding-inline: 0;
}
/* Keep the foreground and background in sync when the Studio theme flips. */
html[data-aim-local] .al-studio-topbar :is(.al-studio-scene-btn, .al-studio-cbtn, .al-studio-back, .al-studio-theme-btn) {
  transition: none;
}
html[data-aim-local] .al-studio-topbar :is(.al-studio-scene-btn, .al-studio-btn, .al-studio-save, .al-studio-guide):is(:hover, [aria-expanded="true"]):not(:disabled) {
  background: var(--rc-paper-sunk);
  color: var(--rc-ink);
}
html[data-aim-local] .al-studio-topbar .al-studio-save {
  border-color: var(--rc-rule-strong) !important;
  background: var(--rc-paper-raise) !important;
  color: var(--rc-ink) !important;
}
html[data-aim-local] .al-studio-topbar .al-studio-save:hover:not(:disabled) {
  background: var(--rc-paper-sunk) !important;
}
html[data-aim-local] .al-studio-shell :is(.al-studio-pop, .al-studio-tree-addmenu, .al-studio-confirm, .al-studio-maploading-card, .pwb-pop) {
  border: 1px solid var(--rc-rule-strong);
  border-radius: var(--rc-r-panel);
  background: var(--rc-paper-raise);
  color: var(--rc-ink);
  box-shadow: none;
}
html[data-aim-local] .al-studio-shell .al-studio-pop-danger {
  color: var(--al-studio-danger);
}
html[data-aim-local] .al-studio-shell .al-studio-pop-danger:hover:not(:disabled) {
  background: color-mix(in srgb, var(--al-studio-danger) 10%, transparent);
}
html[data-aim-local] .al-studio-shell .al-studio-confirm-actions .al-studio-is-danger {
  border-color: var(--al-studio-danger);
  background: var(--al-studio-danger);
  color: var(--rc-paper);
}
/* Primary actions retain their control radius inside the native workspace. */
html[data-aim-local] .al-studio-shell .al-studio-workspace :is(button.al-studio-play, button.al-studio-check-cta) {
  min-block-size: 44px;
  padding-inline: var(--rc-space-4);
  border: 1px solid var(--rc-signal-hover);
  border-radius: var(--rc-r) !important;
  background: var(--rc-signal);
  color: var(--rc-on-signal) !important;
  clip-path: var(--rc-cut-path) !important;
  box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--rc-on-signal) 24%, transparent);
  font: 700 var(--rc-fs-15)/1.2 var(--rc-font-condensed) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
html[data-aim-local] .al-studio-shell :is(.al-studio-play, .al-studio-check-cta, .pwb-main):hover:not(:disabled) {
  background: var(--rc-signal-hover) !important;
  filter: none;
}
html[data-aim-local] .al-studio-shell :is(.al-studio-check, .al-studio-ih-plate) {
  border: var(--rc-hairline);
  border-radius: var(--rc-r);
}
html[data-aim-local] .al-studio-shell .al-studio-check {
  background: var(--rc-paper-sunk);
  color: var(--rc-ink);
}
html[data-aim-local] .al-studio-shell .al-studio-check > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: start;
  gap: var(--rc-space-2);
}
html[data-aim-local] .al-studio-check > header > b {
  font: 600 var(--rc-fs-15)/1.3 var(--rc-font-condensed) !important;
}
html[data-aim-local] .al-studio-check > header > [data-role="check-score"] {
  white-space: nowrap;
  color: var(--rc-ink);
  font-size: var(--rc-fs-15);
}
html[data-aim-local] .al-studio-check-bar i { border-radius: 0; background: var(--rc-ice); }
html[data-aim-local] .al-studio-check-bar i.is-off { background: var(--rc-rule); }
html[data-aim-local] .al-studio-shell .al-studio-guide-link {
  border-radius: var(--rc-r-small);
  background: color-mix(in srgb, var(--rc-signal) 12%, transparent);
}
html[data-aim-local] .al-studio-shell :is(input:not([type="range"], [type="checkbox"], [type="color"], .al-studio-step-input), select, textarea) {
  border-color: var(--rc-rule-strong);
  border-radius: var(--rc-r-small) !important;
  color: var(--rc-ink);
  background-color: var(--rc-paper-raise);
  font-family: var(--rc-font-body) !important;
  box-shadow: none;
}
html[data-aim-local] .al-studio-shell .al-studio-ih-name {
  color: var(--rc-ink);
  font: 700 var(--rc-fs-17)/1.2 var(--rc-font-condensed) !important;
}
html[data-aim-local] .al-studio-shell .al-studio-scene-btn b {
  color: var(--rc-ink);
  font: 600 var(--rc-fs-15)/1.2 var(--rc-font-body) !important;
}
html[data-aim-local] .al-studio-shell .al-studio-tree-map {
  block-size: auto;
  min-block-size: 56px;
}
html[data-aim-local] .al-studio-tree-map-text { padding-block: var(--rc-space-1); }
html[data-aim-local] .al-studio-shell .al-studio-tree-label {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
}
html[data-aim-local] .al-studio-tree-label:has(> .al-studio-tree-swatch) {
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: var(--rc-space-2);
}
html[data-aim-local] .al-studio-tree-label:has(> .al-studio-tree-swatch) > :not(.al-studio-tree-swatch) {
  grid-column: 2;
}
html[data-aim-local] .al-studio-shell :is(.al-studio-tree-map-text strong, .al-studio-tree-name, .al-studio-tree-hint, .al-studio-ih-who small) {
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
}
html[data-aim-local] .al-studio-tree-label .al-studio-tree-badge { justify-self: start; }
html[data-aim-local] .al-studio-tree-supercap {
  display: grid;
  gap: 2px;
}
html[data-aim-local] .al-studio-tree-group-head .al-studio-tree-title {
  display: block;
  white-space: normal;
  line-height: 1.3;
}
html[data-aim-local] .al-studio-tree-title .al-studio-tree-count { white-space: nowrap; }
html[data-aim-local] .al-studio-tree-multibar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
html[data-aim-local] .al-studio-tree-multibar-count {
  grid-column: 1 / -1;
  grid-row: 1;
}
html[data-aim-local] .al-studio-tree-multibar .al-studio-tree-multibar-btn {
  justify-content: center;
  padding-inline: var(--rc-space-1);
  block-size: auto;
  min-block-size: 24px;
}

/* The inspector already scrolls. Give the appearance options a single scroll owner. */
html[data-aim-local] .al-studio-shell .al-look-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 68px), 1fr));
  max-block-size: none;
  overflow: visible;
}
html[data-aim-local] .al-studio-shell .al-look-card { align-content: start; }
html[data-aim-local] .al-studio-shell .al-look-face {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: var(--rc-r-small);
  background: var(--rc-paper-raise);
  color: var(--rc-signal-text);
  font-weight: 500;
}
html[data-aim-local] .al-look-art {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  background: var(--rc-paper-raise);
  object-fit: cover;
  object-position: center top;
  opacity: 0;
  transform: scale(1.75);
  transform-origin: center top;
}
html[data-aim-local] .al-look-art.is-ready { opacity: 1; }
html[data-aim-local] .al-look-bot { inline-size: 58%; }
html[data-aim-local] .al-studio-shell .al-look-name {
  overflow: visible;
  white-space: normal;
  overflow-wrap: normal;
}
html[data-aim-local] .al-studio-shell .al-studio-behaviors-card { border-radius: var(--rc-r); }
html[data-aim-local] .al-studio-shell .al-studio-behaviors-seq { border-radius: var(--rc-r-small); }
html[data-aim-local] .al-studio-shell :is(.al-studio-behaviors-seq, .al-studio-behaviors-act.is-add, .al-sm-seg button.is-on, .al-dispatch-seg button.is-on) {
  background: var(--rc-signal);
  color: var(--rc-on-signal);
}
html[data-aim-local] .al-studio-shell .al-studio-selbar {
  box-sizing: border-box;
  inline-size: max-content;
  flex-wrap: wrap;
}
html[data-aim-local] .al-studio-shell .al-studio-selbar-who {
  min-inline-size: min(180px, 100%);
  max-inline-size: min(208px, 100%);
  flex-wrap: wrap;
  white-space: normal;
  overflow: visible;
}
html[data-aim-local] .al-studio-selbar-who :is(b, small) {
  min-inline-size: 0;
  overflow: visible;
  overflow-wrap: break-word;
}
html[data-aim-local] .al-studio-shell .al-studio-status {
  min-block-size: 32px;
  block-size: auto;
  flex-wrap: wrap;
  gap: var(--rc-space-1) var(--rc-space-4);
  padding-block: var(--rc-space-1);
}
html[data-aim-local] .al-studio-status :is(.al-studio-meter, .al-studio-stat) {
  max-inline-size: 100%;
  white-space: normal;
  overflow-wrap: break-word;
}
html[data-aim-local] .al-studio-status .al-studio-stat > i { flex: none; }

html[data-aim-local] .al-studio-shell :is(.al-ld-slider, .al-sm-slider) { min-inline-size: 0; }
html[data-aim-local] .al-studio-shell :is(.al-ld-slider, .al-sm-slider) output {
  inline-size: auto;
  min-inline-size: 4ch;
  white-space: nowrap;
}
html[data-aim-local] .al-studio-shell .al-ld-kj { max-inline-size: 100%; }
html[data-aim-local] .al-studio-shell .al-ld-kj-title {
  min-block-size: calc(34 * var(--u));
  block-size: auto;
  padding: var(--rc-space-1) var(--rc-space-2);
  text-align: center;
  font: 700 var(--rc-fs-20)/var(--rc-lh-title) var(--rc-font-body);
}

html[data-aim-local] .al-studio-shell .al-studio-tunable {
  grid-template-columns: minmax(0, 1fr);
  row-gap: var(--rc-space-2);
}
html[data-aim-local] .al-studio-tunable > .al-tunable-give {
  grid-column: 1;
  justify-self: end;
  max-inline-size: 100%;
  white-space: normal;
  block-size: auto;
  min-block-size: 24px;
}
html[data-aim-local] .al-studio-tunable > .al-tunable-give i { flex: none; }
html[data-aim-local] .al-studio-tunable > .al-tunable-reason {
  grid-column: 1;
  margin: 0;
  color: var(--rc-slate);
  font-size: var(--rc-fs-12);
  line-height: 1.4;
}
html[data-aim-local] .al-studio-shell .al-tl-label {
  padding-block: 2px;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.3;
}
@media (max-width: 1599px) {
  /* The compact header uses another line, so reserve room for the first track and its controls. */
  html[data-aim-local] .al-studio-shell .al-studio-col-center.has-timeline {
    --al-studio-compact-timeline-h: calc(var(--al-studio-timeline-h) + 62px);
  }
  html[data-aim-local] .al-studio-shell .al-studio-timeline {
    block-size: var(--al-studio-compact-timeline-h) !important;
  }
  html[data-aim-local] .al-studio-shell .has-timeline .al-studio-selbar {
    inset-block-end: calc(16px + var(--al-studio-compact-timeline-h));
  }
  html[data-aim-local] .al-studio-shell .has-timeline .al-studio-mousehint {
    inset-block-end: calc(12px + var(--al-studio-compact-timeline-h));
  }
  html[data-aim-local] .al-studio-shell .has-timeline .al-rec-pop {
    inset-block-end: calc(10px + var(--al-studio-compact-timeline-h));
  }
  html[data-aim-local] .al-studio-shell :is(.al-tl-caption, .al-tl-caption p, .al-tl-tools) {
    flex-wrap: wrap;
    gap: var(--rc-space-1) var(--rc-space-2);
  }
  html[data-aim-local] .al-tl-caption p { flex: 1 1 100%; }
  html[data-aim-local] .al-tl-caption p b {
    flex: none;
    max-inline-size: 100%;
  }
  html[data-aim-local] .al-tl-caption small {
    flex: 1 1 280px;
    overflow: visible;
    white-space: normal;
  }
}
/* The overlays sit on artwork and keep the night palette in both themes. */
html[data-aim-local] .al-studio-shell :is(.al-studio-dock, .al-studio-selbar, .al-studio-mousehint, .al-studio-playtest-hud) {
  border-color: var(--rc-night-rule-strong);
  border-radius: var(--rc-r-panel);
  background: color-mix(in srgb, var(--rc-night) 88%, transparent);
  color: var(--rc-night-text);
  backdrop-filter: none;
}
html[data-aim-local] .al-studio-shell .al-studio-dock-step {
  border-radius: var(--rc-r-small);
  color: var(--rc-night-muted);
  background: var(--rc-night-2);
}
html[data-aim-local] .al-studio-shell input.al-studio-step-input {
  color: var(--rc-night-text);
  background: transparent;
}
html[data-aim-local] .al-studio-shell :focus-visible { outline: 2px solid var(--rc-ice); outline-offset: 2px; }
html[data-aim-local] .al-studio-playtest-result {
  background: var(--rc-night-2);
  border: 1px solid var(--rc-night-rule);
  border-radius: var(--rc-r-panel);
  color: var(--rc-night-text);
  box-shadow: none;
}
html[data-aim-local] .al-studio-playtest-result h2 {
  color: var(--rc-night-text);
  font: 700 var(--rc-fs-20)/var(--rc-lh-title) var(--rc-font-condensed) !important;
}
html[data-aim-local] .al-studio-playtest-result-acts .al-studio-btn {
  min-block-size: 44px;
  padding-inline: var(--rc-space-4);
  border: 1px solid var(--rc-night-text);
  background: transparent;
  color: var(--rc-night-text);
  font: 600 var(--rc-fs-15)/1 var(--rc-font-condensed) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
html[data-aim-local] .al-studio-shell .al-studio-playtest-result-acts .al-studio-btn.al-studio-is-primary {
  border: 0;
  background: var(--rc-signal);
  color: var(--rc-on-signal);
  font-weight: 700 !important;
  box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--rc-on-signal) 24%, transparent);
  clip-path: var(--rc-cut-path) !important;
  filter: none;
}

/* Raised command panels frame the working viewport without repainting the scene. */
html[data-aim-local] .al-studio-shell :is(.al-studio-col-left, .al-studio-col-right) {
  background: var(--rc-paper-raise);
  border-color: var(--rc-rule-strong);
}
html[data-aim-local] .al-studio-shell :is(.al-studio-tabs, .al-studio-ih) {
  background: var(--rc-paper);
  border-block-end: 1px solid var(--rc-rule-strong);
}
html[data-aim-local] .al-studio-shell .al-studio-tabs {
  gap: var(--rc-space-2);
  padding: var(--rc-space-2);
}
html[data-aim-local] .al-studio-shell .al-studio-tab {
  min-block-size: 44px;
  block-size: auto;
  border: 1px solid transparent;
  border-radius: var(--rc-r-small);
  font: 600 var(--rc-fs-13)/1.3 var(--rc-font-body);
}
html[data-aim-local] .al-studio-shell .al-studio-tab.al-studio-is-active {
  color: var(--rc-ink);
  background: var(--rc-paper-sunk);
  border-color: var(--rc-signal);
}
html[data-aim-local] .al-studio-shell .al-studio-tab.al-studio-is-active::after { content: none; }
html[data-aim-local] .al-studio-shell :is(.al-studio-tree-title, .al-studio-tree-supercap) {
  font-family: var(--rc-font-condensed);
  font-size: var(--rc-fs-15);
  font-weight: 600;
  color: var(--rc-ink);
}
html[data-aim-local] .al-studio-shell .al-studio-check { padding: var(--rc-space-4); border-radius: var(--rc-r-panel); }
html[data-aim-local] .al-studio-shell .al-studio-check > header {
  padding-block-end: var(--rc-space-2);
  border-block-end: 1px solid var(--rc-rule-strong);
}
html[data-aim-local] .al-studio-check > header > [data-role="check-score"] {
  font-family: var(--rc-font-mono);
  font-weight: 700;
  color: var(--rc-signal-text);
}
@media (pointer: coarse) {
  html[data-aim-local] .al-studio-shell :is(.al-studio-back, .al-studio-theme-btn, .al-studio-ih-acts button) {
    min-inline-size: 44px;
    min-block-size: 44px;
  }
}
