/* templates.justout.today — studio chrome. Uses the kit tokens. */
html, body.studio {
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
}
body.studio {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  grid-template-areas:
    "head"
    "pick"
    "ctrl"
    "prev"
    "made";
  margin: 0;
  padding: 0;
}

body.studio > header.site {
  grid-area: head;
  margin: 0;
  padding: var(--s-1) var(--s-3);
  border-bottom: 1px solid var(--line);
  background: var(--bg);
  min-height: var(--tap);
}
body.studio > header.site .brand { font-size: 0.95rem; }
body.studio .status {
  margin: 0;
  color: var(--soft);
  font-size: var(--fs-xs);
  min-height: 1em;
}

.side { display: contents; }

.picker {
  grid-area: pick;
  padding: var(--s-1) var(--s-3);
  min-height: 0;
}
.picker h2 {
  margin: 0 0 var(--s-1);
  font-size: var(--fs-xs);
  font-family: var(--font-ui);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--soft);
}
.picker-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--s-1);
  height: 72px;
}
.picker-row button.tool-card { height: 100%; border-width: 2px; }
.picker-row .card-copy { padding: 2px 4px 4px; }
.picker-row .card-copy h2 { font-size: 0.7rem; line-height: 1.1; text-align: center; }

.controls {
  grid-area: ctrl;
  padding: 0 var(--s-3) var(--s-1);
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
}
.ctrl-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: var(--s-2);
  min-height: var(--tap);
}
.ctrl {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  min-height: var(--tap);
  min-width: 0;
}
.ctrl-row { min-width: 0; max-width: 100%; overflow: hidden; }
.mode-toggle { align-self: flex-end; flex: 0 0 auto; }
.ctrl label {
  margin: 0;
  font-size: var(--fs-xs);
  color: var(--soft);
  font-weight: 700;
  white-space: nowrap;
}
.ctrl select {
  min-height: var(--tap);
  min-width: 10ch;
  flex: 1 1 auto;
  padding: var(--s-1) var(--s-2);
}
.ctrl input[type="range"] {
  width: 96px;
  min-width: 72px;
}
.ctrl output {
  font-size: var(--fs-xs);
  color: var(--soft);
  min-width: 3ch;
}
.mode-toggle {
  display: inline-flex;
  gap: var(--s-1);
  margin-left: auto;
}

.preview-wrap {
  grid-area: prev;
  min-height: 0;
  min-width: 0;
  margin: 0 var(--s-3) var(--s-1);
  border: 3px solid var(--accent);
  border-radius: var(--radius);
  background: var(--bg-2);
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
}
.view-toggle {
  position: static;
  display: flex;
  flex: 0 0 auto;
  justify-content: flex-end;
  gap: var(--s-1);
  padding: var(--s-1) var(--s-2) 0;
}
.preview-frame {
  position: relative;
  inset: auto;
  flex: 1 1 auto;
  min-height: 0;
  margin: var(--s-1);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.artboard-scale {
  overflow: hidden;
  flex: 0 0 auto;
}
.artboard {
  width: 390px;
  height: 844px;
  transform-origin: top left;
  background: var(--bg);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ink) 25%, transparent);
}
.artboard iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: var(--bg);
}

footer.made-for {
  grid-area: made;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--s-2) var(--s-3);
  min-height: 40px;
  padding: var(--s-1) var(--s-3);
  border-top: 1px solid var(--line);
  background: var(--bg);
  font-size: var(--fs-xs);
  color: var(--soft);
}
footer.made-for p { margin: 0; }
footer.made-for a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  font-weight: 700;
}

@media (min-width: 900px) {
  body.studio {
    grid-template-columns: 300px minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    grid-template-areas:
      "head head"
      "side prev"
      "made made";
  }
  .side {
    grid-area: side;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    padding: var(--s-2) 0 var(--s-2) var(--s-3);
    gap: var(--s-2);
  }
  .picker { padding: 0 var(--s-3) 0 0; }
  .picker-row {
    height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(5, 56px);
    gap: var(--s-1);
  }
  .picker-row button.tool-card { flex-direction: row; }
  .picker-row .thumb { flex: 0 0 88px; height: 100%; }
  .picker-row .card-copy { display: flex; align-items: center; padding: 0 var(--s-2); }
  .picker-row .card-copy h2 { font-size: var(--fs-xs); text-align: left; }
  .controls { padding: 0 var(--s-3) 0 0; }
  .ctrl-row { flex-wrap: wrap; }
  .preview-wrap { margin: var(--s-2) var(--s-3) var(--s-2) 0; }
}

@media (prefers-reduced-motion: reduce) {
  .artboard { transition: none; }
}

body.studio > header.site nav button#download-zip {
  background: var(--accent);
  color: var(--on-accent);
  border: 2px solid var(--accent);
  border-radius: 999px;
}
body.studio > header.site nav button#copy-css {
  background: var(--card);
  color: var(--ink);
  border: 2px solid var(--accent);
  border-radius: 999px;
}
