/*
Tujuan: Menata workspace interaktif untuk tool image browser-only NOPPAW.
Caller: Tool page template dan assets/js/tools/tool-page.js.
Dependensi: tokens.css, components.css.
Main Functions: Mengatur dropzone, preview, panel settings, result area, dan responsive workspace.
Side Effects: Mempengaruhi semua route yang memakai template tool.
*/

.tool-layout {
  display: grid;
  gap: var(--space-4);
}

.tool-app .panel {
  padding: var(--space-5);
}

.dropzone {
  display: grid;
  place-items: center;
  gap: var(--space-2);
  min-height: 180px;
  border: 2px dashed var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  text-align: center;
  padding: var(--space-5);
}

.dropzone.is-active {
  border-color: var(--color-primary);
  background: var(--color-primary-soft);
}

.dropzone-title {
  font-size: 1.05rem;
  font-weight: 700;
}

.preview-frame {
  position: relative;
  min-height: 240px;
  display: grid;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(45deg, #f7f9fc 25%, transparent 25%, transparent 75%, #f7f9fc 75%),
    linear-gradient(45deg, #f7f9fc 25%, transparent 25%, transparent 75%, #f7f9fc 75%);
  background-position: 0 0, 10px 10px;
  background-size: 20px 20px;
  overflow: hidden;
}

.preview-image {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.preview-placeholder {
  color: var(--color-text-muted);
  padding: var(--space-4);
  text-align: center;
}

.crop-overlay {
  position: absolute;
  border: 2px solid var(--color-primary);
  background: rgb(37 99 235 / 0.12);
  pointer-events: none;
}

.field-group + .field-group {
  margin-top: var(--space-4);
}

.tool-result-panel .button-row {
  margin-top: var(--space-4);
}

@media (min-width: 1024px) {
  .tool-layout {
    grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1.1fr);
    align-items: start;
  }

  .tool-preview-panel,
  .tool-result-panel {
    grid-column: 2;
  }
}
