/* =============================================================================
   CVPilot — Additions for Drawer, Dark/Light, Saved, Gap Analysis
   ============================================================================= */

/* ── Light mode overrides ──────────────────────────────────────────────────── */
[data-bs-theme="light"] {
  --color-bg-primary:    #FFFFFF;
  --color-bg-secondary:  #F9FAFB;
  --color-bg-elevated:   #E5E7EB; /* Slightly darker for better elevation contrast */
  --color-border-subtle: rgba(0,0,0,0.08);
  --color-border-medium: rgba(0,0,0,0.18);
  --color-text-primary:   #111827;
  --color-text-secondary: #1F2937; /* Darker gray for primary body text contrast */
  --color-text-tertiary:  #374151;  /* Darker gray */
  --color-text-muted:     #4B5563;  /* Darker gray for labels/secondary info */
  
  --color-success:        #059669;  /* Darker green for contrast */
  --color-warning:        #D97706;  /* Darker orange for contrast */
  --color-danger:         #DC2626;  /* Darker red for contrast */
  --color-info:           #2563EB;    /* Darker blue for contrast */
}

/* Light mode specific contrast improvements */
[data-bs-theme="light"] body { background:var(--color-bg-primary); color:var(--color-text-secondary); }
[data-bs-theme="light"] body::before { display:none; }
[data-bs-theme="light"] .sidebar { background:var(--color-bg-secondary); }
[data-bs-theme="light"] table.dataTable tbody tr { background:#FFFFFF; }
[data-bs-theme="light"] table.dataTable tbody tr:hover { background:#F3F4F6; }
[data-bs-theme="light"] .dataTables_wrapper .dataTables_length select,
[data-bs-theme="light"] .dataTables_wrapper .dataTables_filter input { background:#FFFFFF; color:#111827; border: 1px solid var(--color-border-medium); }
[data-bs-theme="light"] .insight-section { background:#FFFFFF; }
[data-bs-theme="light"] .stats-sidebar { background:#F3F4F6; border-color:rgba(0,0,0,0.08); }
[data-bs-theme="light"] .drawer-backdrop { background:rgba(0,0,0,0.3); }
[data-bs-theme="light"] .job-drawer { background:#FFFFFF; }
[data-bs-theme="light"] .gap-panel { background:var(--color-bg-secondary); border-color:rgba(0,0,0,0.08); }

/* Score and badge color contrast overrides */
[data-bs-theme="light"] .score-green { color: #047857 !important; border-color: rgba(4,120,87,0.3); background: rgba(4,120,87,0.06); }
[data-bs-theme="light"] .score-orange { color: #C2410C !important; border-color: rgba(194,65,12,0.3); background: rgba(194,65,12,0.06); }
[data-bs-theme="light"] .score-red { color: #B91C1C !important; border-color: rgba(185,28,28,0.3); background: rgba(185,28,28,0.06); }

/* Button and action elements contrast overrides */
[data-bs-theme="light"] .apply-btn { color: #1D4ED8; background: rgba(29,78,216,0.08); border-color: rgba(29,78,216,0.25); }
[data-bs-theme="light"] .apply-btn:hover { color: #1E40AF; background: rgba(29,78,216,0.16); border-color: rgba(29,78,216,0.45); }
[data-bs-theme="light"] .aicv-btn { color: #047857; background: rgba(4,120,87,0.08); border-color: rgba(4,120,87,0.25); }
[data-bs-theme="light"] .aicv-btn:hover { color: #065F46; background: rgba(4,120,87,0.16); border-color: rgba(4,120,87,0.45); }
[data-bs-theme="light"] .btn-insights { color: #6D28D9; border-color: rgba(109,40,217,0.3); background: rgba(109,40,217,0.05); }
[data-bs-theme="light"] .btn-insights:hover { color: #5B21B6; background: rgba(109,40,217,0.15); border-color: rgba(109,40,217,0.5); }
[data-bs-theme="light"] .btn-run { color: #047857; border-color: rgba(4,120,87,0.3); background: rgba(4,120,87,0.05); }
[data-bs-theme="light"] .btn-run:hover { color: #065F46; background: rgba(4,120,87,0.15); border-color: rgba(4,120,87,0.5); }

/* Heart & action icons contrast overrides */
[data-bs-theme="light"] .heart-btn, [data-bs-theme="light"] .icon-btn { color: var(--color-text-muted); background: rgba(0,0,0,0.02); border-color: var(--color-border-subtle); }
[data-bs-theme="light"] .heart-btn:hover { background: rgba(220,38,38,0.08); border-color: rgba(220,38,38,0.3); color: #DC2626; }
[data-bs-theme="light"] .heart-btn.saved { background: rgba(220,38,38,0.12); border-color: rgba(220,38,38,0.4); color: #DC2626; }
[data-bs-theme="light"] .icon-btn:hover { background: rgba(37,99,235,0.08); border-color: rgba(37,99,235,0.3); color: #2563EB; }

/* Custom elements & alerts overrides */
[data-bs-theme="light"] .source-chip:checked + .source-label { background: rgba(139,92,246,0.1); border-color: #8B5CF6; color: #6D28D9; }
[data-bs-theme="light"] .drawer-section-label { color: #6D28D9; }
[data-bs-theme="light"] .drawer-rationale { background: rgba(109,40,217,0.04); border-color: rgba(109,40,217,0.15); color: #4C1D95; }
[data-bs-theme="light"] .alert-danger { background: #FEF2F2; border-color: #FCA5A5; color: #991B1B; }
[data-bs-theme="light"] .alert-warning { background: #FFFBEB; border-color: #FDE68A; color: #92400E; }
[data-bs-theme="light"] .chip-btn { background: rgba(0,0,0,0.02); }
[data-bs-theme="light"] .chip-btn:hover { background: rgba(0,0,0,0.05); }

/* Scrollbars overrides */
[data-bs-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); }
[data-bs-theme="light"] ::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.25); }
[data-bs-theme="light"] ::-webkit-scrollbar-track { background: var(--color-bg-primary); }

/* ── Theme Toggle Button ───────────────────────────────────────────────────── */
.theme-toggle {
  position:static; margin-left:auto; flex-shrink:0;
  width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,0.06); border:1px solid var(--color-border-medium);
  color:var(--color-text-tertiary); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; transition:all 150ms ease;
}
.theme-toggle:hover { background:rgba(255,255,255,0.12); color:var(--color-text-primary); }

/* ── Stats sidebar (right col of cv summary) ───────────────────────────────── */
.stats-sidebar {
  background:#14161b; border:1px solid rgba(255,255,255,.07);
  border-radius:8px; padding:20px;
  display:flex; flex-direction:column; gap:20px;
}

.cv-summary-grid { display:grid; grid-template-columns:minmax(0, 1fr) 300px; gap:14px; }

@media (max-width: 700px) {
  .cv-summary-grid { grid-template-columns:1fr; }
}
.stat-label { color:var(--color-text-muted); font-size:10px; margin-bottom:4px; text-transform:uppercase; letter-spacing:.06em; }
.stat-value  { font-size:18px; font-weight:700; color:var(--color-text-primary); }
.stack-badge { background:rgba(255,255,255,.03); color:var(--color-text-tertiary); border:1px solid rgba(255,255,255,.1); padding:5px 10px; font-weight:600; font-size:11px; }

/* ── Heart / Icon action buttons ───────────────────────────────────────────── */
.heart-btn, .icon-btn, .mock-interview-btn {
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:var(--radius-sm);
  font-size:12px; cursor:pointer; transition:all var(--transition-fast);
  background:rgba(255,255,255,0.04); border:1px solid var(--color-border-subtle);
  color:var(--color-text-muted); padding:0;
  text-decoration: none;
}
.heart-btn:hover { background:rgba(239,68,68,0.15); border-color:rgba(239,68,68,0.4); color:#F87171; }
.heart-btn.saved { background:rgba(239,68,68,0.18); border-color:rgba(239,68,68,0.5); color:#F87171; }
.heart-btn.saved i::before { content:"\f415"; } /* bi-heart-fill */
.icon-btn:hover { background:rgba(59,130,246,0.15); border-color:rgba(59,130,246,0.4); color:#60A5FA; }
.mock-interview-btn { color:#a78bfa; background:rgba(139,92,246,0.08); border-color:rgba(139,92,246,0.25); }
.mock-interview-btn { font-size:11px; font-weight:600; gap:5px; }
.mock-interview-btn:hover { color:#c084fc; background:rgba(139,92,246,0.16); border-color:rgba(139,92,246,0.45); }

/* ── Job Drawer ────────────────────────────────────────────────────────────── */
.drawer-backdrop {
  position:fixed; inset:0; background:rgba(0,0,0,0.55);
  z-index:2999; opacity:0; pointer-events:none;
  transition:opacity 250ms ease;
}
.drawer-backdrop.open { opacity:1; pointer-events:auto; }

.job-drawer {
  position:fixed; top:0; right:0; bottom:0;
  width:min(560px, 92vw);
  background:var(--color-bg-secondary);
  border-left:1px solid var(--color-border-subtle);
  z-index:3000; display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform 300ms cubic-bezier(0.4,0,0.2,1);
  box-shadow:-8px 0 40px rgba(0,0,0,0.5);
}
.job-drawer.open { transform:translateX(0); }

.drawer-header {
  padding:16px 20px; border-bottom:1px solid var(--color-border-subtle);
  display:flex; align-items:flex-start; gap:12px;
}
.drawer-title { flex:1; }
.drawer-header-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.drawer-title h3 { font-size:15px; font-weight:700; margin:0 0 4px; color:var(--color-text-primary); }
.drawer-title .company { font-size:12px; color:var(--color-text-muted); }
.drawer-close {
  width:30px; height:30px; border-radius:6px; flex-shrink:0;
  background:rgba(255,255,255,0.05); border:1px solid var(--color-border-subtle);
  color:var(--color-text-muted); cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:all 150ms ease;
}
.drawer-close:hover { background:rgba(255,42,42,0.15); color:#F87171; border-color:rgba(239,68,68,0.4); }

.drawer-meta { padding:12px 20px; display:flex; gap:10px; flex-wrap:wrap; border-bottom:1px solid var(--color-border-subtle); }
.drawer-meta:empty { display:none; }
.drawer-badge { font-size:11px; font-weight:600; padding:4px 10px; border-radius:20px; border:1px solid var(--color-border-medium); color:var(--color-text-tertiary); display:inline-flex; align-items:center; }

.drawer-body { flex:1; overflow-y:auto; padding:20px; max-height:calc(100vh - 180px); }
.drawer-section-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#A78BFA; margin-bottom:10px; display:flex; align-items:center; gap:6px; }
.drawer-rationale { font-size:13px; line-height:1.65; padding:14px; background:rgba(139,92,246,0.08); border:1px solid rgba(139,92,246,0.2); border-radius:8px; margin-bottom:20px; }
.drawer-desc { font-size:12.5px; line-height:1.75; white-space:pre-wrap; word-break:break-word; color:var(--color-text-secondary); }
.drawer-footer { padding:14px 20px; border-top:1px solid var(--color-border-subtle); display:flex; gap:10px; }
.drawer-footer a, .drawer-footer button { flex:1; justify-content:center; }
/* Drawer actions share one consistent control height while retaining their labels. */
.drawer-footer .apply-btn,
.drawer-body .mock-interview-btn,
.drawer-body .aicv-btn {
  height:34px;
  min-height:34px;
  box-sizing:border-box;
  justify-content:center;
}

/* ── Gap Analysis Panel ────────────────────────────────────────────────────── */
.gap-panel {
  background:var(--color-bg-secondary); border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md); padding:20px;
  animation:fadeInUp 0.3s ease-out; margin-bottom:20px;
}
.gap-bar-wrap { display:flex; align-items:center; gap:10px; margin-bottom:9px; }
.gap-skill-name { width:110px; font-size:12px; font-weight:600; flex-shrink:0; color:var(--color-text-secondary); }
.gap-bar-bg { flex:1; height:8px; border-radius:4px; background:rgba(255,255,255,0.06); overflow:hidden; }
.gap-bar-fill { height:100%; border-radius:4px; background:linear-gradient(90deg,#F97316,#EF4444); transition:width 0.8s cubic-bezier(0.4,0,0.2,1); }
.gap-pct { width:36px; font-size:11px; color:var(--color-text-muted); font-family:'JetBrains Mono',monospace; text-align:right; }

/* ── Saved tab empty state ─────────────────────────────────────────────────── */
/* Inherits min-height: 280px from styles.css for consistent vertical centering */

/* ── Saved job card ────────────────────────────────────────────────────────── */
.saved-card {
  background:var(--color-bg-secondary); border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md); padding:14px 16px;
  display:flex; align-items:center; gap:14px;
  transition:border-color var(--transition-fast);
  cursor:pointer;
}
.saved-card:hover { border-color:var(--color-border-medium); }
.saved-card-info { flex:1; min-width:0; }
.saved-card-info h5 { font-size:13px; font-weight:700; margin:0 0 2px; color:var(--color-text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.saved-card-info span { font-size:11px; color:var(--color-text-muted); }

/* Additional high-contrast overrides for CV Summary and Gaps in light mode */
[data-bs-theme="light"] .insight-section .badge { color: #047857 !important; background: rgba(4,120,87,0.08) !important; border-color: rgba(4,120,87,0.25) !important; }
[data-bs-theme="light"] .stats-sidebar .stat-value[style*="#34d399"] { color: #047857 !important; }
[data-bs-theme="light"] .stack-badge { background: rgba(0,0,0,0.03) !important; border-color: var(--color-border-subtle) !important; }
[data-bs-theme="light"] .stats-sidebar .badge { background: rgba(0,0,0,0.03) !important; border-color: var(--color-border-subtle) !important; }
[data-bs-theme="light"] .dz-hint { color: #059669 !important; }
[data-bs-theme="light"] #savedCount { color: #DC2626 !important; background: rgba(220,38,38,0.12) !important; }
[data-bs-theme="light"] .drawer-badge { color: var(--color-text-tertiary) !important; border-color: var(--color-border-medium) !important; }
[data-bs-theme="light"] .gap-panel .badge { color: #DC2626 !important; background: rgba(220,38,38,0.06) !important; border-color: rgba(220,38,38,0.2) !important; }
[data-bs-theme="light"] .gap-panel .badge span { background: rgba(220,38,38,0.12) !important; color: #DC2626 !important; }
[data-bs-theme="light"] .drawer-close:hover { background: rgba(220,38,38,0.08) !important; color: #DC2626 !important; border-color: rgba(220,38,38,0.3) !important; }
[data-bs-theme="light"] .gap-bar-bg { background: rgba(0,0,0,0.08); }
[data-bs-theme="light"] .theme-toggle { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.15); color: var(--color-text-primary); }
[data-bs-theme="light"] .theme-toggle:hover { background: rgba(0,0,0,0.08); }
[data-bs-theme="light"] .mock-interview-btn { color: #6D28D9; background: rgba(109,40,217,0.08); border-color: rgba(109,40,217,0.25); }
[data-bs-theme="light"] .mock-interview-btn:hover { color: #5B21B6; background: rgba(109,40,217,0.16); border-color: rgba(109,40,217,0.45); }

/* Single pasted-JD analysis ------------------------------------------------- */
.tab-bar { overflow-x:auto; scrollbar-width:none; display:flex !important; flex:0 0 auto; background:var(--color-bg-primary); }
.tab-bar::-webkit-scrollbar { display:none; }
.tab-btn { flex-shrink:0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:0.01ms !important;
  }
}
.jd-analyzer { max-width:1040px; margin:0 auto; }
.jd-analyzer-heading {
  display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  margin-bottom:18px;
}
.jd-analyzer-heading h2 { margin:5px 0 6px; font-size:22px; color:var(--color-text-primary); }
.jd-analyzer-heading p { margin:0; max-width:620px; font-size:13px; color:var(--color-text-muted); }
.jd-analyzer-eyebrow {
  display:inline-flex; align-items:center; gap:6px; color:#A78BFA;
  font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
}
.jd-analyzer-form,.jd-report-card {
  background:var(--color-bg-secondary); border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md); padding:20px;
}
.jd-analyzer-form label {
  display:block; margin-bottom:8px; color:var(--color-text-secondary);
  font-size:12px; font-weight:700;
}
.jd-analyzer-form textarea {
  width:100%; min-height:280px; resize:vertical; padding:14px 16px;
  color:var(--color-text-primary); background:rgba(255,255,255,.025);
  border:1px solid var(--color-border-medium); border-radius:var(--radius-md);
  font:12.5px/1.65 'Inter',sans-serif; transition:border-color 150ms ease,box-shadow 150ms ease;
}
.jd-analyzer-form textarea::placeholder { color:var(--color-text-muted); }
.jd-analyzer-form textarea:focus {
  outline:none; border-color:#8B5CF6; box-shadow:0 0 0 3px rgba(139,92,246,.12);
}
.jd-form-footer {
  display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px;
}
#jdCharCount { color:var(--color-text-muted); font:10px 'JetBrains Mono',monospace; }
.jd-form-actions { display:flex; align-items:center; gap:8px; }
.jd-clear-btn { height:38px; padding:0 13px; text-transform:none; letter-spacing:0; font-size:13px; font-weight:700; }
.jd-clear-btn { color:#F87171; border-color:rgba(239,68,68,.35); background:rgba(239,68,68,.09); }
.jd-clear-btn:hover { color:#FCA5A5; border-color:rgba(239,68,68,.6); background:rgba(239,68,68,.17); }
.jd-analyze-btn { width:auto; min-width:154px; height:38px; padding:0 16px; }
.jd-analysis-result:not(:empty) { margin-top:18px; }
.jd-analysis-loading {
  min-height:150px; display:flex; align-items:center; justify-content:center; gap:14px;
  color:var(--color-text-secondary); font-size:13px;
}
.jd-analysis-loading .plp-spinner { width:24px; height:24px; }
.jd-report-card { animation:fadeInUp .28s ease-out; }
.jd-report-header { display:flex; align-items:center; gap:16px; padding-bottom:18px; }
.jd-score-ring {
  width:76px; height:76px; flex:0 0 76px; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  border:5px solid currentColor; background:rgba(255,255,255,.02);
}
.jd-score-ring strong { font:700 23px/1 'JetBrains Mono',monospace; }
.jd-score-ring span { margin-top:3px; font-size:9px; opacity:.72; }
.jd-score-high { color:#34D399; }
.jd-score-good { color:#60A5FA; }
.jd-score-partial { color:#FBBF24; }
.jd-score-low { color:#F87171; }
.jd-report-title { min-width:0; flex:1; }
.jd-report-title h3 { margin:5px 0 3px; font-size:18px; color:var(--color-text-primary); }
.jd-report-title p { margin:0; color:var(--color-text-muted); font-size:12px; }
.jd-verdict {
  display:inline-flex; padding:3px 8px; border-radius:999px; font-size:9px;
  font-weight:800; letter-spacing:.06em; text-transform:uppercase;
}
.jd-verdict-high { color:#34D399; background:rgba(16,185,129,.11); }
.jd-verdict-good { color:#60A5FA; background:rgba(59,130,246,.11); }
.jd-verdict-partial { color:#FBBF24; background:rgba(245,158,11,.11); }
.jd-verdict-low { color:#F87171; background:rgba(239,68,68,.11); }
.jd-role-summary {
  padding:14px 16px; margin-bottom:14px; border-radius:var(--radius-md);
  color:var(--color-text-secondary); background:rgba(139,92,246,.07);
  border:1px solid rgba(139,92,246,.16); font-size:12.5px; line-height:1.7;
}
.jd-report-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.jd-report-section {
  min-height:150px; padding:15px; border-radius:var(--radius-md);
  border:1px solid var(--color-border-subtle); background:rgba(255,255,255,.018);
}
.jd-report-section h4 {
  display:flex; align-items:center; gap:7px; margin:0 0 10px;
  color:var(--color-text-primary); font-size:11px; font-weight:800;
  letter-spacing:.05em; text-transform:uppercase;
}
.jd-positive h4 { color:#34D399; }
.jd-gaps h4 { color:#FBBF24; }
.jd-report-section ul { margin:0; padding-left:18px; }
.jd-report-section li { margin-bottom:7px; color:var(--color-text-secondary); font-size:12px; line-height:1.55; }
.jd-report-empty { margin:0; color:var(--color-text-muted); font-size:12px; }
.jd-recommendation strong { display:inline; color:#A78BFA; font-size:14px; }
.jd-recommendation p { margin:0; color:var(--color-text-secondary); font-size:12px; line-height:1.6; }
.jd-report-actions {
  display:flex; justify-content:flex-end; gap:8px; padding-top:16px; margin-top:16px;
  border-top:1px solid var(--color-border-subtle);
}
.jd-report-actions .mock-interview-btn,.jd-report-actions .aicv-btn {
  width:154px; height:36px; justify-content:center; text-decoration:none;
}
[data-bs-theme="light"] .jd-analyzer-form textarea,
[data-bs-theme="light"] .jd-report-section { background:rgba(0,0,0,.018); }
[data-bs-theme="light"] .jd-clear-btn { color:#B91C1C; border-color:rgba(185,28,28,.3); background:rgba(185,28,28,.06); }
[data-bs-theme="light"] .jd-clear-btn:hover { color:#991B1B; border-color:rgba(185,28,28,.55); background:rgba(185,28,28,.12); }

@media (max-width:700px) {
  .jd-analyzer-heading { flex-direction:column; }
  .jd-report-grid { grid-template-columns:1fr; }
  .jd-form-footer { align-items:flex-start; flex-direction:column; }
  .jd-form-actions,.jd-analyze-btn { width:100%; }
  .jd-form-actions .jd-clear-btn { flex:0 0 auto; }
  .jd-report-header { align-items:flex-start; flex-wrap:wrap; }
  .jd-report-actions { flex-direction:column; }
  .jd-report-actions .mock-interview-btn,.jd-report-actions .aicv-btn { width:100%; }
}
