/*
 * ============================================================================
 * Copyright (c) 2026 ATH SOLUTIONS (PTY) LTD. All rights reserved.
 * KwaZulu-Natal, Republic of South Africa.
 * ============================================================================
 *
 * @BEGIN Developer Log Header Block
 * @FILENAME: canvas-editor.css
 * @TITLE: PATHWRITE
 * @DESCRIPTION: Template canvas editor view - toolbox, canvas main area, pages panel, responsive stacking.
 * @AUTHOR: Ary van der Pijl
 * @COMPANY: ATH SOLUTIONS (PTY) LTD
 * @WEBSITE: https://www.ath.solutions/
 * @EMAIL: info@ath.solutions
 * @COPYRIGHT: All Rights Reserved
 * @LICENSE: ATH SOLUTIONS - PROPRIETARY SOFTWARE LICENCE AGREEMENT (https://www.ath.solutions/documents/ath_solutions_software_licence_agreement.pdf)
 *
 * BEGIN CHANGELOG
 * @IMPORTANT NOTICE: Developers working on these files MUST update and maintain the Developers Change Log, failure to do is not an option:
 * !==================================================================================================================================================================
 * VERSION 1.0.1
 * - File Modified | Ary van der Pijl | 2026-08-18 | Gap Analysis follow-up (REQ-GAP-001 Section 12, accessibility spot-check): .toolbox-empty-text repointed from --color-text-subtle to --color-text-muted - the subtle token fails 4.5:1 text contrast on the surface colour and this class renders real readable text, not a decorative icon. |
 * VERSION 1.0.0
 * + File Created | Ary van der Pijl | 2026-08-06 | Extracted from main.css as part of the Phase 17 CSS architecture split (9-file hierarchy per STD-E). |
 * ==================================================================================================================================================================!
 * END CHANGELOG
 */

/* ─── Canvas editor layout ───────────────────────────────────────────────── */

.canvas-editor-page {
  display: flex;
  flex-direction: column;
  height: calc(100vh - var(--header-height) - 120px);
  min-height: 600px;
}

.canvas-editor-layout {
  display: grid;
  grid-template-columns: 220px 1fr 200px;
  gap: var(--space-4);
  flex: 1;
  overflow: hidden;
}

/* Toolbox (left panel) */
.canvas-toolbox {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow-y: auto;
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.toolbox-section-title {
  font-size: var(--text-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: var(--ls-wider);
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
}

.toolbox-buttons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-2);
}

.toolbox-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-2) var(--space-1);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  cursor: pointer;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.toolbox-btn:hover,
.toolbox-btn.active {
  border-color: var(--color-primary);
  background: var(--color-primary-light);
  color: var(--color-primary);
}

.toolbox-btn .material-icons-round {
  font-size: 1.25rem;
}

.toolbox-empty-text {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

.toolbox-photos-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.toolbox-photo-chip {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  background: var(--color-surface-2);
  transition: border-color var(--transition-fast);
}

.toolbox-photo-chip:hover {
  border-color: var(--color-primary);
}

.toolbox-photo-img {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  object-fit: cover;
  flex-shrink: 0;
}

.toolbox-photo-name {
  font-size: var(--text-xs);
  color: var(--color-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Canvas main area */
.canvas-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-3);
  overflow: auto;
  padding: var(--space-3);
  background: var(--color-surface-2);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  position: relative;
}

.canvas-save-status {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: var(--space-1) var(--space-3);
  z-index: 10;
}

.canvas-save-status .material-icons-round {
  font-size: 0.875rem;
  color: var(--color-success);
}

.canvas-wrapper {
  box-shadow: var(--shadow-lg);
  border-radius: var(--radius-md);
  overflow: hidden;
  flex-shrink: 0;
}

.canvas-page-nav {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* Pages panel (right thumbnails) */
.canvas-pages-panel {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow-y: auto;
  padding: var(--space-4);
}

.page-thumbnails {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: var(--space-3);
}

.page-thumb {
  cursor: pointer;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color var(--transition-fast);
}

.page-thumb:hover,
.page-thumb.active {
  border-color: var(--color-primary);
}

.page-thumb-canvas-wrapper {
  background: white;
}

.page-thumb-canvas {
  width: 100%;
  display: block;
}

.page-thumb-label {
  display: block;
  text-align: center;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  padding: var(--space-1);
  background: var(--color-surface-2);
}

.canvas-bottom-bar {
  margin-top: var(--space-4);
  flex-shrink: 0;
}

/* Responsive: stack on narrow viewports */
@media (max-width: 1024px) {
  .canvas-editor-layout {
    grid-template-columns: 180px 1fr;
  }

  .canvas-pages-panel {
    display: none;
  }
}

@media (max-width: 768px) {
  .canvas-editor-layout {
    grid-template-columns: 1fr;
  }

  .canvas-toolbox {
    order: 2;
  }

  .canvas-main {
    order: 1;
  }
}
