/* File: styles/components/cv-editor-modal.css */

/* ============================================
   CV Edit/View Modal
   ============================================ */

.cv-edit-view-modal {
  max-width: 97vw;
  width: 97vw;
  height: 95vh;
  max-height: 95vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.cv-modal-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  /* Critical for flex scrolling */
}

.cv-modal-content {
  flex: 1;
  min-height: 0;
  /* Critical for flex scrolling */
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.cv-modal-header {
  flex-shrink: 0;
  padding: 0 0 var(--spacing-4) 0;
}

.cv-modal-header h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  color: var(--text-primary);
}

/* Info icon in modal title - tooltip trigger */
.cv-modal-info-icon {
  margin-left: 8px;
  font-size: 16px;
  color: var(--text-secondary);
  cursor: help;
  vertical-align: middle;
}

.cv-modal-info-icon:hover {
  color: var(--interactive-primary);
}

/*========== Table ==================*/
.cv-edit-view-modal th,
.cv-edit-view-modal td {
  font-size: 16px;
}

/* Table row interactions */
.cv-edit-view-modal table tbody tr {
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.cv-edit-view-modal table tbody tr:hover {
  background-color: var(--surface-hover);
}

.cv-edit-view-modal table tbody tr.selected {
  background-color: var(--interactive-subtle);
  border-left: 3px solid var(--interactive-primary);
}


/* ============================================
   Tab Navigation
   ============================================ */

.cv-modal-tabs {
  flex-shrink: 0;
  display: flex;
  gap: var(--spacing-2);
  padding: var(--spacing-4) 0;
  border-bottom: 1px solid var(--border-subtle);
}

/* Tab Buttons */
.cv-modal-tabs .tab-button {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2);
  padding: var(--spacing-2) var(--spacing-4);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.cv-modal-tabs .tab-button:hover {
  color: var(--text-primary);
  background: var(--surface-hover);
}

.cv-modal-tabs .tab-button.active {
  color: var(--interactive-primary);
  border-bottom-color: var(--interactive-primary);
  font-weight: 600;
}

.cv-modal-tabs .tab-button i {
  font-size: 14px;
}

/* Tab Content Container */
.cv-modal-tab-content {
  flex: 1;
  min-height: 0;
  /* Critical for flex scrolling */
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Tab Panes */
.cv-modal-tab-content .tab-pane {
  display: none;
  flex: 1;
  min-height: 0;
  /* Critical for flex scrolling */
  overflow: hidden;
  padding: 1rem 0px 0rem 0px !important;
}

.cv-modal-tab-content .tab-pane.active {
  display: flex;
  flex-direction: column;
}

/* CV Edit View Modal specific tab content sizing */
.cv-edit-view-modal .account-tab-content {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.cv-edit-view-modal .tab-pane.active {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* ============================================
   Update CV Tab
   ============================================ */

.cv-update-tab-container {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.cv-update-toolbar {
  flex-shrink: 0;
  display: flex;
  gap: var(--spacing-2);
  padding: var(--spacing-2) 0;
  border-bottom: 1px solid var(--border-subtle);
}

.cv-two-pane-layout {
  display: flex;
  gap: var(--spacing-4);
  flex: 1;
  min-height: 0;
  /* Critical for flex scrolling */
  overflow: hidden;
  padding-top: var(--spacing-2);
}

.cv-editor-pane,
.cv-preview-pane,
.cv-version-list-pane,
.cv-version-preview-pane {
  flex: 1;
  min-height: 0;  /* Critical: allow flex shrinking */
  /* Critical for flex scrolling */
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.cv-editor-pane h4,
.cv-preview-pane h4,
.cv-version-list-pane h4,
.cv-version-preview-pane h4 {
  flex-shrink: 0;
  margin: 0 0 var(--spacing-4) 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--text-primary);
}

#cv-editor-container {
  margin-right: 2px;
  margin-bottom: 2px;
}

#cv-editor-container,
#cv-preview-container,
#cv-version-preview-container {
  flex: 1;
  min-height: 0;
  /* Critical for flex scrolling */
  border: 1px solid var(--border-default);
  border-radius: 4px;
  padding: var(--spacing-4);
  background: var(--surface-default);
}

/* Editor container: no scroll (CVMarkdownEditor handles its own scrolling) */
#cv-editor-container {
  padding: 0;
  overflow: visible;
}

/* Preview container: vertical scroll only */
#cv-preview-container {
  overflow-y: auto;
  overflow-x: hidden;
}

/* Version preview container: vertical scroll only */
#cv-version-preview-container {
  overflow-y: auto;
  overflow-x: hidden;
}

/* ============================================
   Preview Pane Header (matching CV Editor)
   ============================================ */

#cv-preview-container {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
}

.cv-preview-header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4);
  background: var(--surface-background);
  border-bottom: 1px solid var(--border-subtle);
  gap: var(--spacing-4);
}

.cv-preview-header__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
}

.cv-preview-header__validation {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

.cv-preview-header__validation--valid {
  background: rgba(40, 167, 69, 0.1);
  color: var(--status-success);
}

.cv-preview-header__validation--invalid {
  background: rgba(220, 53, 69, 0.1);
  color: var(--status-error);
}

.cv-preview-content {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--spacing-4);
  background: var(--surface-default);
}

/* ============================================
   Version History Tab
   ============================================ */

.cv-history-tab-container {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.cv-version-preview-pane .markdown-preview {
  width: auto !important;
}

/* Version Table */
.cv-version-list-pane {
  overflow: auto;
}

.cv-version-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--surface-default);
  font-size: 14px;
}

.cv-version-table thead {
  background: var(--surface-secondary);
  position: sticky;
  top: 0;
  z-index: 1;
}

.cv-version-table thead th {
  padding: var(--spacing-2) var(--spacing-4);
  text-align: left;
  font-weight: 600;
  color: var(--text-secondary);
  border-bottom: 2px solid var(--border-default);
}

.cv-version-table tbody tr {
  border-bottom: 1px solid var(--border-subtle);
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.cv-version-table tbody tr:hover {
  background: var(--surface-hover);
}

.cv-version-table tbody tr.selected {
  background: var(--surface-selected);
}

.cv-version-table tbody tr.cv-version-row--active {
  background: var(--surface-highlight);
  border-left: 3px solid var(--interactive-primary);
}

.cv-version-table tbody td {
  padding: var(--spacing-2);
  color: var(--text-primary);
}

.cv-version-number {
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
}

.cv-version-date {
  font-size: 12px;
  color: var(--text-secondary);
  margin-top: 4px;
}

/* ============================================
   Status Badges
   ============================================ */

.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.status-badge--draft {
  background: var(--status-warning-bg);
  color: var(--status-warning);
}

.status-badge--approved {
  background: var(--status-success-bg);
  color: var(--status-success);
}

.status-badge--pending_human,
.status-badge--pending_ai {
  background: var(--status-info-bg);
  color: var(--status-info);
}

.status-badge--rejected {
  background: var(--status-error-bg);
  color: var(--status-error);
}

/* ============================================
   Buttons
   ============================================ */

.activate-version-btn {
  min-width: auto;
  padding: 6px 12px;
  font-size: 13px;
}

.cv-modal-actions .button-group {
  display: flex;
  gap: var(--spacing-2);
  justify-content: flex-end;
}

/* ============================================
   Modal Actions / Footer
   ============================================ */

.modal__footer {
  flex-shrink: 0;
  padding: var(--spacing-4) 0 0 0;
  border-top: 1px solid var(--border-subtle);
  background: var(--surface-default);
}

.cv-modal-actions {
  flex-shrink: 0;
  padding: var(--spacing-4) 0 0 0;
  border-top: 1px solid var(--border-subtle);
}

/* ============================================
   Loading State
   ============================================ */

.cv-modal-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-8);
  color: var(--text-secondary);
}

.loading-spinner {
  border: 3px solid var(--border-subtle);
  border-top: 3px solid var(--interactive-primary);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
  margin-bottom: var(--spacing-2);
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.loading-text {
  font-size: 14px;
  color: var(--text-secondary);
}

/* ============================================
   Placeholder Text
   ============================================ */

.cv-edit-view-modal .placeholder-text {
  color: var(--text-secondary);
  font-style: italic;
  text-align: center;
  padding: var(--spacing-8);
}



/* ============================================
   Markdown Preview Styling (Scoped)
   ============================================ */

.cv-edit-view-modal .markdown-preview {
  font-family: var(--font-family-base);
  line-height: 1.6;
  color: var(--text-primary);
  width: auto !important;
}

.cv-select-modal .markdown-preview h1,
.cv-edit-view-modal .markdown-preview h1 {
  font-size: 28px;
  font-weight: 700;
  margin: 0 0 var(--spacing-4) 0;
  color: var(--text-primary);
  border-bottom: 2px solid var(--border-default);
  padding-bottom: var(--spacing-2);
}

.cv-select-modal .markdown-preview h2,
.cv-edit-view-modal .markdown-preview h2 {
  font-size: 22px;
  font-weight: 600;
  margin: var(--spacing-4) 0 var(--spacing-2) 0;
  color: var(--text-primary);
}

.cv-select-modal .markdown-preview h3,
.cv-edit-view-modal .markdown-preview h3 {
  font-size: 18px;
  font-weight: 600;
  margin: var(--spacing-4) 0 var(--spacing-2) 0;
  color: var(--text-primary);
}

.cv-select-modal .markdown-preview h4,
.cv-edit-view-modal .markdown-preview h4 {
  font-size: 16px;
  font-weight: 600;
  margin: var(--spacing-4) 0 var(--spacing-2) 0;
  color: var(--text-primary);
}

.cv-select-modal .markdown-preview p,
.cv-edit-view-modal .markdown-preview p {
  margin: 0 0 var(--spacing-2) 0;
  font-size: 16px;
}

.cv-select-modal .markdown-preview ul,
.cv-select-modal .markdown-preview ol,
.cv-edit-view-modal .markdown-preview ul,
.cv-edit-view-modal .markdown-preview ol {
  margin: 0 0 var(--spacing-2) 0;
  padding-left: var(--spacing-8);
}

.cv-select-modal .markdown-preview li,
.cv-edit-view-modal .markdown-preview li {
  margin: var(--spacing-1) 0;
  font-size: 16px;
}

.cv-select-modal .markdown-preview code,
.cv-edit-view-modal .markdown-preview code {
  background: var(--surface-secondary);
  padding: 2px 6px;
  border-radius: 3px;
  font-family: monospace;
  font-size: 13px;
}

.cv-select-modal .markdown-preview pre,
.cv-edit-view-modal .markdown-preview pre {
  background: var(--surface-secondary);
  padding: var(--spacing-2);
  border-radius: 4px;
  overflow-x: auto;
  margin: 0 0 var(--spacing-2) 0;
}

.cv-select-modal .markdown-preview pre code,
.cv-edit-view-modal .markdown-preview pre code {
  background: none;
  padding: 0;
}

.cv-select-modal .markdown-preview strong,
.cv-edit-view-modal .markdown-preview strong {
  font-weight: 600;
}

.cv-select-modal .markdown-preview em,
.cv-edit-view-modal .markdown-preview em {
  font-style: italic;
}

@media (max-height: 830px) {
  .cv-edit-view-modal .cv-version-preview-pane {
    height: 49vh !important;
  }

  /* #cv-editor-container {
    overflow-x: auto;
  } */
}

/* ============================================
   Utility Classes
   ============================================ */

.cv-edit-view-modal .error-text {
  color: var(--status-error);
  font-weight: 500;
}

.cv-edit-view-modal .text-muted {
  color: var(--text-secondary);
  font-size: 13px;
}

/* ============================================
   CV Revise AI Modal
   ============================================ */

.cv-revise-ai-modal {
  max-width: 600px;
  width: 90%;
}

.cv-revise-ai-container {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.cv-revise-ai-container h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  color: var(--text-primary);
}

.cv-revise-ai-form {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.cv-revise-ai-form .form-group {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.cv-revise-ai-form .form-label {
  font-weight: 500;
  font-size: 14px;
  color: var(--text-primary);
}

.cv-revise-ai-form .required-asterisk {
  color: var(--status-error);
}

/* Shoelace Button Group Customization */
sl-button-group {
  display: flex;
  gap: 4px;
}

sl-button-group sl-button {
  flex: 1;
}

sl-button.active::part(base) {
  background-color: var(--interactive-primary);
  color: var(--text-on-primary);
}

/* ============================================
   Responsive Design
   ============================================ */

@media (max-width: 920px) {
  /* Single-column responsive layout */
  .cv-two-pane-layout {
    flex-direction: column;
    overflow: visible;
  }

  /* Hide preview pane in single-column mode */
  .cv-preview-pane {
    display: none;
  }

  /* Editor pane: natural height, no constraints */
  .cv-editor-pane {
    height: auto;
    min-height: auto;
    max-height: none;
    flex: 0 0 auto;
    overflow: visible;
  }

  /* SCROLLBAR INSIDE TAB CONTENT - not outside tabs */
  .cv-edit-view-modal .account-tab-content {
    overflow-y: auto;
    overflow-x: hidden;
  }

  .cv-edit-view-modal .tab-pane.active {
    overflow: visible;
    flex: 0 0 auto;
  }

  .cv-update-tab-container {
    overflow: visible;
    flex: 0 0 auto;
  }

  /* Prevent outer scrollbar - let .account-tab-content handle it */
  .cv-modal-content {
    overflow: hidden;
  }

  /* Markdown editor: natural height in single-column mode */
  .cv-markdown-editor {
    height: auto !important;
    min-height: 300px;
    max-height: none;
  }

  /* Version History tab: natural height in single-column mode */
  .cv-history-tab-container {
    overflow: visible;
    flex: 0 0 auto;
  }

  .cv-version-list-pane,
  .cv-version-preview-pane {
    height: auto;
    min-height: auto;
    max-height: none;
    flex: 0 0 auto;
    overflow: visible;
  }

  /* Version preview content: natural height, no internal scroll */
  #cv-version-preview-container {
    overflow: visible;
    max-height: none;
  }

  /* Version list table: natural height */
  .cv-history-tab-container .data-table-container {
    max-height: none;
    overflow: visible;
  }
}

@media (min-width: 1200px) {
  .cv-edit-view-modal {
    max-width: 98vw;
    width: 98vw;
  }
}

@media (max-width: 768px) {
  .cv-edit-view-modal {
    max-width: 100vw;
    width: 100vw;
    max-height: 100vh;
    height: 100vh;
    border-radius: 0;
  }

  .cv-modal-header h2 {
    font-size: 20px;
  }

  .cv-modal-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .cv-modal-tabs .tab-button {
    font-size: 13px;
    padding: var(--spacing-2) var(--spacing-4);
  }

  .cv-update-toolbar {
    flex-wrap: wrap;
  }

  .cv-version-table {
    font-size: 12px;
  }

  .cv-version-table thead th,
  .cv-version-table tbody td {
    padding: var(--spacing-2);
  }

  .cv-editor-pane h4,
  .cv-preview-pane h4,
  .cv-version-list-pane h4,
  .cv-version-preview-pane h4 {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .cv-modal-tabs .tab-button {
    font-size: 12px;
    padding: var(--spacing-1) var(--spacing-2);
  }

  .cv-two-pane-layout {
    gap: var(--spacing-2);
  }

  #cv-editor-container,
  #cv-preview-container,
  #cv-version-preview-container {
    padding: var(--spacing-2);
  }
}