/* GUI Colorizer. #gcz-scoped — tool-theme.css loads after this. */

#gcz { display: block; }

#gcz .gcz-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
  align-items: start;
}
#gcz .gcz-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }

#gcz .gcz-field { display: block; min-width: 0; }
#gcz .gcz-label {
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .72;
  margin-bottom: 6px;
}
#gcz .gcz-hint { display: block; margin-top: 8px; font-size: 12.5px; line-height: 1.55; opacity: .68; }
#gcz input[type="text"] { width: 100%; padding: 9px 11px; border-radius: 8px; font-size: 15px; }
/* margin:0 is load-bearing. Chrome's user-agent stylesheet gives input[type=range] a 2px
 * margin on each side; with width:100% that is 4px of overflow, which the rendered-page sweep
 * caught at all three viewports on this page and nothing else would have. */
#gcz input[type="range"] { width: 100%; margin: 0; box-sizing: border-box; }

#gcz .gcz-stops { display: flex; flex-wrap: wrap; gap: 8px; }
#gcz .gcz-stops input[type="color"] {
  width: 46px; height: 36px; padding: 0; border-radius: 8px; cursor: pointer;
}

#gcz .gcz-presets { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
#gcz .gcz-preset {
  display: flex; flex-direction: column; gap: 6px;
  padding: 8px 10px; border-radius: 10px; cursor: pointer; text-align: left;
}
#gcz .gcz-presetname {
  font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; opacity: .8;
}
#gcz .gcz-presetbar { display: block; height: 10px; border-radius: 999px; }

/* Texture list ----------------------------------------------------------- */
#gcz .gcz-previews { display: flex; flex-direction: column; gap: 8px; }
#gcz .gcz-tex {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px 10px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(127, 127, 127, .10);
  cursor: pointer;
}
/* An unticked texture shows as vanilla rather than disappearing — the reader needs to see what
 * Minecraft will keep, not an empty row. */
#gcz .gcz-tex.gcz-off { opacity: .55; }
#gcz .gcz-texname { font-size: 13.5px; font-weight: 600; }
#gcz .gcz-texrole {
  font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; opacity: .6;
}
#gcz .gcz-canvas {
  grid-column: 1 / -1;
  display: block;
  padding: 6px;
  border-radius: 8px;
  /* A checkerboard, because most of these textures are mostly transparent and a flat ground
   * would read as part of the texture. */
  background-image:
    linear-gradient(45deg, rgba(127, 127, 127, .20) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(127, 127, 127, .20) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(127, 127, 127, .20) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(127, 127, 127, .20) 75%);
  background-size: 12px 12px;
  background-position: 0 0, 0 6px, 6px -6px, -6px 0;
  overflow-x: auto;
}
#gcz .gcz-thumb {
  display: block;
  /* These are 16-to-256px sources. Scaling them up must not smooth, or the preview lies about
   * what the pack contains. */
  image-rendering: pixelated;
  max-width: 100%;
  height: auto;
}

#gcz .gcz-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#gcz .gcz-selall { margin-bottom: 10px; }
#gcz .gcz-btn { padding: 9px 15px; border-radius: 9px; font-size: 14px; font-weight: 700; cursor: pointer; }
#gcz .gcz-note { margin: 0; min-height: 1.2em; font-size: 13px; line-height: 1.5; opacity: .85; }

#gcz .gcz-help { margin-top: 26px; font-size: 14.5px; line-height: 1.7; max-width: 72ch; }
#gcz .gcz-help p { margin: 0 0 12px; }
#gcz .gcz-help p:last-child { margin-bottom: 0; }

#gcz [hidden] { display: none !important; }
