/* Primary Market Research — Application CSS (v2)
   Drop-in replacement for pmr_app.css
   Changes vs v1: hover states, mobile typography, empty states,
   progress polish, upload box, error states, better tables.
*/

/* ── Design tokens ────────────────────────────────────────────────────── */
:root {
  --pmr-navy:    #1B3A6B;
  --pmr-teal:    #0A6E6E;
  --pmr-gold:    #C6922A;
  --pmr-light:   #EBF2FA;
  --pmr-border:  #CCCCCC;
  --pmr-radius:  6px;
  --pmr-shadow:  0 1px 4px rgba(0,0,0,.06);
  --pmr-shadow-hover: 0 4px 14px rgba(27,58,107,.13);
  --pmr-transition: .18s ease;
}

/* ── Layout ────────────────────────────────────────────────────────────── */
.pmr-container { max-width:1100px; margin:0 auto; padding:24px 20px; }
.pmr-page-header { margin-bottom:28px; }
.pmr-page-header h1 { color:var(--pmr-navy); font-size:26px; margin:0 0 8px; }
.pmr-page-header p  { color:#555; font-size:15px; margin:0; }

/* ── Panel ─────────────────────────────────────────────────────────────── */
.pmr-panel {
  background:#fff;
  border:1px solid var(--pmr-border);
  border-radius:var(--pmr-radius);
  padding:24px;
  margin-bottom:20px;
  box-shadow:var(--pmr-shadow);
}
.pmr-panel-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }

/* ── Query page grid ───────────────────────────────────────────────────── */
.pmr-query-layout { display:grid; grid-template-columns:2fr 1fr; gap:20px; margin-bottom:20px; }
.pmr-toc-layout   { display:grid; grid-template-columns:3fr 1fr; gap:20px; margin-top:20px; }

/* ── Textarea ──────────────────────────────────────────────────────────── */
.pmr-textarea {
  width:100%; padding:12px;
  border:1px solid var(--pmr-border);
  border-radius:var(--pmr-radius);
  font-size:14px; resize:vertical; font-family:inherit;
  transition:border-color var(--pmr-transition);
}
.pmr-textarea:focus { outline:none; border-color:var(--pmr-navy); box-shadow:0 0 0 3px rgba(27,58,107,.1); }

/* ── Buttons ───────────────────────────────────────────────────────────── */
.pmr-btn {
  display:inline-block; padding:10px 20px;
  border-radius:var(--pmr-radius); border:none; cursor:pointer;
  font-size:14px; font-weight:600; text-decoration:none;
  transition:opacity var(--pmr-transition), box-shadow var(--pmr-transition), transform var(--pmr-transition);
}
.pmr-btn:hover  { opacity:.88; box-shadow:var(--pmr-shadow-hover); transform:translateY(-1px); }
.pmr-btn:active { transform:translateY(0); opacity:1; }
.pmr-btn:disabled, .pmr-btn[disabled] { opacity:.5; cursor:not-allowed; transform:none; box-shadow:none; }

.pmr-btn-primary   { background:var(--pmr-navy); color:#fff; }
.pmr-btn-secondary { background:var(--pmr-teal); color:#fff; }
.pmr-btn-download  { background:var(--pmr-gold);  color:#fff; }
.pmr-btn-outline   { background:transparent; color:var(--pmr-navy); border:1.5px solid var(--pmr-navy); }
.pmr-btn-outline:hover { background:var(--pmr-light); }
.pmr-btn-lg  { padding:14px 28px; font-size:16px; }
.pmr-btn-sm  { padding:6px 14px; font-size:12px; }

/* ── Tier selector ─────────────────────────────────────────────────────── */
.pmr-tier-options { display:flex; gap:12px; margin:12px 0 16px; }
.pmr-tier-option {
  flex:1; border:2px solid var(--pmr-border); border-radius:var(--pmr-radius);
  padding:14px; cursor:pointer; display:flex; flex-direction:column; gap:4px;
  transition:border-color var(--pmr-transition), background var(--pmr-transition);
}
.pmr-tier-option:hover { border-color:var(--pmr-navy); background:var(--pmr-light); }
.pmr-tier-option input { display:none; }
.pmr-tier-active { border-color:var(--pmr-navy); background:var(--pmr-light); }
.pmr-tier-icon   { font-size:20px; }

/* ── Brief upload box ──────────────────────────────────────────────────── */
.pmr-brief-upload-wrap {
  margin-top:10px;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.pmr-upload-label {
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border:1px dashed #aaa; border-radius:var(--pmr-radius);
  cursor:pointer; font-size:13px; color:#555; background:#fafafa;
  transition:background var(--pmr-transition), border-color var(--pmr-transition);
}
.pmr-upload-label:hover { background:var(--pmr-light); border-color:var(--pmr-navy); }
#pmr-brief-status { font-size:12px; color:#888; }
#pmr-brief-status.success { color:var(--pmr-teal); }
#pmr-brief-status.error   { color:#c00; }

/* ── Badges ────────────────────────────────────────────────────────────── */
.pmr-badge          { display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; background:var(--pmr-navy); color:#fff; }
.pmr-badge-verified { background:var(--pmr-teal); }
.pmr-badge-express  { background:var(--pmr-navy); }
.pmr-badge-delivered { background:#186618; }
.pmr-badge-pending  { background:#888; }

/* ── Account balance panel ─────────────────────────────────────────────── */
.pmr-balance-row { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid #f0f0f0; font-size:14px; }
.pmr-cost-row    { display:flex; justify-content:space-between; padding:6px 0; font-size:14px; }
.pmr-cost-total  { border-top:2px solid var(--pmr-navy); margin-top:8px; padding-top:10px; font-size:16px; }

/* ── TOC items ─────────────────────────────────────────────────────────── */
.pmr-toc-item {
  display:flex; align-items:center; gap:10px;
  padding:10px 12px; border:1px solid var(--pmr-border);
  border-radius:var(--pmr-radius); margin-bottom:6px; background:#fff;
  transition:background var(--pmr-transition);
}
.pmr-toc-item:hover { background:#f9fbff; }
.pmr-toc-item.excluded { opacity:.45; }
.pmr-toc-item input[type=checkbox] { width:16px; height:16px; cursor:pointer; accent-color:var(--pmr-navy); }
.pmr-toc-caveat { font-size:11px; color:#888; margin-left:auto; }

/* ── Dashboard stat cards ──────────────────────────────────────────────── */
.pmr-dashboard-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; margin-bottom:24px; }
.pmr-stat-card {
  background:#fff; border:1px solid var(--pmr-border);
  border-radius:var(--pmr-radius); padding:20px; text-align:center;
  transition:box-shadow var(--pmr-transition), transform var(--pmr-transition);
}
.pmr-stat-card:hover { box-shadow:var(--pmr-shadow-hover); transform:translateY(-2px); }
.pmr-stat-label { font-size:12px; color:#888; margin-bottom:6px; }
.pmr-stat-value { font-size:22px; font-weight:700; color:var(--pmr-navy); }
.pmr-stat-cta   { display:flex; align-items:center; justify-content:center; }

/* ── Data tables ───────────────────────────────────────────────────────── */
.pmr-table { width:100%; border-collapse:collapse; font-size:14px; }
.pmr-table th { background:var(--pmr-navy); color:#fff; padding:10px 12px; text-align:left; font-weight:600; }
.pmr-table td { padding:10px 12px; border-bottom:1px solid #f0f0f0; }
.pmr-table tr:hover td { background:#f5f8ff; }
.pmr-table tr:last-child td { border-bottom:none; }
.pmr-table-wrap { overflow-x:auto; border-radius:var(--pmr-radius); border:1px solid var(--pmr-border); }

/* ── Status labels ─────────────────────────────────────────────────────── */
.pmr-status-delivered { color:#186618; font-weight:600; }
.pmr-status-active    { color:var(--pmr-gold); font-weight:600; }
.pmr-status-generating { color:var(--pmr-teal); font-weight:600; }
.pmr-status-cancelled { color:#999; }
.pmr-status-pending   { color:#555; }

/* ── Empty state ───────────────────────────────────────────────────────── */
.pmr-empty {
  text-align:center; color:#888; padding:48px 24px;
  border:1px dashed #ddd; border-radius:var(--pmr-radius);
  background:#fafafa;
}
.pmr-empty-icon { font-size:40px; display:block; margin-bottom:12px; }
.pmr-empty h3   { color:#555; font-size:16px; margin:0 0 8px; }
.pmr-empty p    { font-size:14px; margin:0 0 16px; }

/* ── Progress bar ──────────────────────────────────────────────────────── */
.pmr-progress-bar-wrap  { background:#f0f0f0; border-radius:10px; height:12px; margin:10px 0; overflow:hidden; }
.pmr-progress-bar       { background:linear-gradient(90deg, var(--pmr-teal), var(--pmr-navy)); height:100%; border-radius:10px; transition:width .8s ease; }
.pmr-progress-meta      { display:flex; justify-content:space-between; font-size:13px; color:#666; }
.pmr-progress-section   { font-size:12px; color:var(--pmr-teal); font-style:italic; margin-top:4px; }

/* ── Report cards (grid view) ──────────────────────────────────────────── */
.pmr-report-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:20px; }
.pmr-report-card {
  border:1px solid var(--pmr-border); border-radius:var(--pmr-radius);
  background:#fff; display:flex; flex-direction:column;
  transition:box-shadow var(--pmr-transition), transform var(--pmr-transition);
}
.pmr-report-card:hover  { box-shadow:var(--pmr-shadow-hover); transform:translateY(-2px); }
.pmr-report-card-body   { padding:18px; flex:1; }
.pmr-report-card-body h3 { margin:8px 0; font-size:15px; line-height:1.4; }
.pmr-report-card-body h3 a { color:var(--pmr-navy); text-decoration:none; }
.pmr-report-card-body h3 a:hover { text-decoration:underline; }
.pmr-report-card-footer { padding:14px 18px; border-top:1px solid #f0f0f0; display:flex; justify-content:space-between; align-items:center; }
.pmr-report-price       { font-size:16px; font-weight:700; color:var(--pmr-navy); }

/* ── Spinner / loading ─────────────────────────────────────────────────── */
.pmr-loading { text-align:center; padding:40px; color:#888; }
.pmr-spinner {
  width:36px; height:36px;
  border:4px solid #eee; border-top-color:var(--pmr-navy);
  border-radius:50%; animation:pmr-spin .8s linear infinite;
  margin:0 auto 12px;
}
@keyframes pmr-spin { to { transform:rotate(360deg); } }

/* ── Inline error / success messages ──────────────────────────────────── */
.pmr-alert {
  padding:10px 14px; border-radius:var(--pmr-radius);
  font-size:13px; margin:8px 0; line-height:1.5;
}
.pmr-alert-error   { background:#fff0f0; border:1px solid #f5c6c6; color:#8b0000; }
.pmr-alert-success { background:#f0fff4; border:1px solid #b2dfdb; color:#155724; }
.pmr-alert-info    { background:var(--pmr-light); border:1px solid #b3c9e7; color:var(--pmr-navy); }

/* ── Analyst editor ────────────────────────────────────────────────────── */
.pmr-analyst-section        { border:1px solid var(--pmr-border); border-radius:var(--pmr-radius); margin-bottom:16px; overflow:hidden; }
.pmr-analyst-section-header { background:var(--pmr-light); padding:12px 16px; display:flex; justify-content:space-between; align-items:center; }
.pmr-analyst-meta           { display:flex; gap:16px; font-size:12px; color:#888; }
.pmr-analyst-editor         { width:100%; padding:16px; border:none; border-top:1px solid var(--pmr-border); font-family:monospace; font-size:13px; resize:vertical; }
.pmr-analyst-notes          { padding:8px 12px; border-top:1px solid #eee; }
.pmr-analyst-toolbar        { display:flex; gap:12px; align-items:center; margin-bottom:20px; padding:16px; background:var(--pmr-light); border-radius:var(--pmr-radius); }

/* ── Addon items ───────────────────────────────────────────────────────── */
.pmr-addon-item {
  display:flex; align-items:center; gap:10px; padding:8px 10px;
  border:1px solid var(--pmr-border); border-radius:var(--pmr-radius);
  margin-bottom:6px; cursor:pointer; background:#fff; font-size:13px;
  transition:background var(--pmr-transition), border-color var(--pmr-transition);
  user-select:none;
}
.pmr-addon-item:hover { background:var(--pmr-light); border-color:var(--pmr-navy); }
.pmr-addon-item input[type=checkbox] { width:16px; height:16px; flex-shrink:0; cursor:pointer; accent-color:var(--pmr-navy); }
.pmr-addon-item span { flex:1; line-height:1.3; }
.pmr-addon-price     { white-space:nowrap; color:var(--pmr-navy); font-size:13px; font-weight:700; }

/* ── Grand total ───────────────────────────────────────────────────────── */
#pmr-grand-total { font-size:15px; color:var(--pmr-navy); font-weight:700; transition:color .2s, font-size .2s; }

/* ── Misc helpers ──────────────────────────────────────────────────────── */
.pmr-note  { font-size:12px; color:#888; margin-top:6px; }
.pmr-input { width:100%; padding:8px 10px; border:1px solid var(--pmr-border); border-radius:4px; font-size:13px; transition:border-color var(--pmr-transition); }
.pmr-input:focus { outline:none; border-color:var(--pmr-navy); }
.pmr-error { color:#c00; font-size:13px; }
.pmr-link  { color:var(--pmr-teal); text-decoration:none; font-size:14px; }
.pmr-link:hover { text-decoration:underline; }
.pmr-divider { border:none; border-top:1px solid #eee; margin:16px 0; }

/* ── Staff banner ──────────────────────────────────────────────────────── */
.pmr-staff-banner {
  background:linear-gradient(90deg,#1B3A6B,#0A6E6E);
  color:#fff; padding:8px 16px; font-size:12px; font-weight:600;
  border-radius:var(--pmr-radius); margin-bottom:16px;
}

/* ── Nav override (ensure brand colour shows in nav) ───────────────────── */
.nav-primary { background:var(--pmr-navy) !important; }
.nav-primary__menu-item a { color:#fff !important; font-weight:500; transition:opacity .15s; }
.nav-primary__menu-item a:hover { opacity:.8; color:#fff !important; }

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width:768px) {
  .pmr-query-layout,
  .pmr-toc-layout    { grid-template-columns:1fr; }
  .pmr-tier-options  { flex-direction:column; }
  .pmr-dashboard-stats { grid-template-columns:repeat(2,1fr); }
  .pmr-report-grid   { grid-template-columns:1fr; }
  .pmr-page-header h1 { font-size:22px; }
  .pmr-panel          { padding:16px; }
  .pmr-btn-lg         { padding:12px 20px; font-size:15px; }
  .pmr-stat-value     { font-size:18px; }
  .pmr-analyst-toolbar { flex-wrap:wrap; }
}

@media (max-width:480px) {
  .pmr-container      { padding:16px 12px; }
  .pmr-page-header h1 { font-size:19px; }
  .pmr-tier-option    { padding:10px; }
  .pmr-table          { font-size:12px; }
  .pmr-table th,
  .pmr-table td       { padding:7px 8px; }
  .pmr-dashboard-stats { grid-template-columns:1fr; }
}
/* ── Query Enhancement & Coverage Chips (added for detailed TOC) ─────────── */
.pmr-toc-item-header { display:flex; align-items:flex-start; gap:4px; }
.pmr-toc-num { color:#1B3A6B; font-weight:700; min-width:22px; }
.pmr-sub-sections { padding:4px 0 6px 28px; display:flex; flex-wrap:wrap; gap:5px; }
.pmr-sub-section { font-size:11.5px; color:#555; background:#f4f6fa;
  border-radius:4px; padding:2px 8px; border:1px solid #dde3f0; }
.pmr-chip-group { display:flex; flex-wrap:wrap; gap:6px; align-items:center;
  margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid #eee; }
.pmr-chip-group:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.pmr-chip-label { font-size:11px; font-weight:700; color:#1B3A6B; min-width:130px;
  text-transform:uppercase; letter-spacing:0.5px; flex-shrink:0; }
.pmr-chip { font-size:12px; background:#e8eef8; color:#1B3A6B;
  border-radius:12px; padding:3px 10px; border:1px solid #c5d5f0; }
.pmr-chip-teal { background:#e6f4f4; color:#0A6E6E; border-color:#b8dede; }
.pmr-chip-gold { background:#fdf5e8; color:#8B6914; border-color:#e8d5a0; }
.pmr-chip-grey { background:#f0f0f0; color:#555; border-color:#ddd; }
