/* ── Chicken Price Monitor — Public ── */

/* Wrapper */
.cpm-wrap { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; max-width:100%; }

/* Page header */
.cpm-page-header { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.cpm-title { font-size:1.5rem; font-weight:700; margin:0 0 4px; color:#1a2438; }
.cpm-date-stamp { color:#666; font-size:0.88rem; margin:0; }

/* Export buttons */
.cpm-export-btns { display:flex; gap:8px; flex-wrap:wrap; }
.cpm-btn { background:#fff; border:1px solid #dde; color:#334; border-radius:5px; padding:7px 13px; font-size:0.82rem; cursor:pointer; transition:background .15s; }
.cpm-btn:hover { background:#f0f4f8; }

/* Note / blockquote */
.cpm-note { border-left:4px solid #f0c040; background:#fffbe8; padding:10px 16px; margin:0 0 18px; border-radius:0 8px 8px 0; color:#555; font-size:0.88rem; }

/* Ticker */
.cpm-ticker-wrap { display:flex; align-items:center; background:#1a2438; color:#fff; border-radius:8px; overflow:hidden; margin-bottom:20px; height:38px; }
.cpm-ticker-label { background:#f0c040; color:#1a2438; font-weight:700; font-size:0.8rem; padding:0 12px; white-space:nowrap; height:100%; display:flex; align-items:center; flex-shrink:0; }
.cpm-ticker { flex:1; overflow:hidden; height:100%; }
.cpm-ticker-inner { display:inline-flex; align-items:center; white-space:nowrap; height:100%; animation:cpm-scroll 120s linear infinite; font-size:0.83rem; padding-left:20px; }
.cpm-ticker-inner strong { color:#f0c040; margin:0 2px; }
@keyframes cpm-scroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* Filter / search */
.cpm-table-controls { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:10px; }
.cpm-filter-pills { display:flex; gap:6px; flex-wrap:wrap; }
.cpm-pill { background:#f0f4f8; border:1px solid #dde; border-radius:20px; padding:5px 14px; font-size:0.8rem; cursor:pointer; transition:background .15s; }
.cpm-pill.active, .cpm-pill:hover { background:#1a2438; color:#fff; border-color:#1a2438; }
.cpm-search-wrap input { border:1px solid #ccc; border-radius:5px; padding:6px 10px; font-size:0.85rem; }

/* Table */
.cpm-table-wrap { overflow-x:auto; border-radius:10px; box-shadow:0 2px 12px rgba(0,0,0,.08); margin-bottom:8px; }
.cpm-table { width:100%; border-collapse:collapse; font-size:0.88rem; }
.cpm-table thead tr { background:#1a2438; color:#fff; }
.cpm-table thead th { padding:13px 16px; text-align:left; font-weight:600; font-size:0.8rem; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; white-space:nowrap; }
.cpm-table thead th:hover { background:#243050; }
.cpm-table tbody tr:nth-child(odd) td { background:#fff; }
.cpm-table tbody tr:nth-child(even) td { background:#f7f9fc; }
.cpm-table tbody tr:hover td { background:#eef4ff; }
.cpm-table td { padding:11px 16px; border-bottom:1px solid #eef; }
.cpm-num { text-align:right; font-family:'Courier New',monospace; }
.cpm-avg { font-weight:700; color:#1a2438; }
.cpm-src-count { color:#888; font-size:0.8rem; text-align:center; }
.cpm-table-foot { font-size:0.78rem; color:#888; margin:4px 0 20px; }

/* Rationale rows */
.cpm-rationale-row td { background:#fffbe8 !important; font-size:0.82rem; color:#666; padding:6px 16px; border-bottom:1px solid #f0e8a0; }

/* No data */
.cpm-no-data { background:#f7f9fc; border:1px dashed #ccd; border-radius:10px; padding:30px; text-align:center; color:#888; margin:20px 0; }

/* Outlook / confidence */
.cpm-outlook { font-weight:600; }
.cpm-conf { color:#f0a020; font-size:0.95rem; white-space:nowrap; }

/* ── Signal cards ── */
.cpm-signals-panel { background:#f7f9fc; border:1px solid #dde; border-radius:10px; padding:18px 20px; margin-bottom:24px; }
.cpm-signals-panel h3 { margin:0 0 6px; font-size:1rem; color:#1a2438; }
.cpm-signals-intro { font-size:0.84rem; color:#666; margin:0 0 14px; }
.cpm-signal-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; }
.cpm-signal-card { border-radius:8px; padding:12px 14px; border-left:4px solid #ccc; background:#fff; }
.cpm-signal-header { display:flex; gap:10px; align-items:flex-start; margin-bottom:6px; }
.cpm-signal-dir { font-size:1.4rem; font-weight:700; line-height:1; flex-shrink:0; }
.cpm-signal-meta { font-size:0.78rem; color:#888; margin:0 0 4px; }
.cpm-signal-desc { font-size:0.82rem; color:#555; margin:4px 0 0; }

/* Direction colours */
.cpm-dir-up    { border-left-color:#1a7a42; } .cpm-dir-up .cpm-signal-dir { color:#1a7a42; }
.cpm-dir-down  { border-left-color:#a81d1d; } .cpm-dir-down .cpm-signal-dir { color:#a81d1d; }
.cpm-dir-stable{ border-left-color:#1a50a8; } .cpm-dir-stable .cpm-signal-dir { color:#1a50a8; }
.cpm-dir-uncertain { border-left-color:#7a6010; } .cpm-dir-uncertain .cpm-signal-dir { color:#7a6010; }

/* Standalone signals */
.cpm-signals-standalone h3 { font-size:1.1rem; margin-bottom:12px; }

/* ── Responsive ── */
@media (max-width:600px) {
  .cpm-table thead { display:none; }
  .cpm-table tbody tr { display:block; margin-bottom:10px; border:1px solid #eef; border-radius:8px; }
  .cpm-table tbody td { display:flex; justify-content:space-between; padding:8px 12px; border:none; border-bottom:1px solid #f0f0f0; }
  .cpm-table tbody td::before { content:attr(data-label); font-weight:600; color:#555; }
  .cpm-page-header { flex-direction:column; }
}

@media print {
  .cpm-export-btns, .cpm-table-controls, .cpm-ticker-wrap, .cpm-filter-pills { display:none !important; }
  .cpm-table { font-size:0.8rem; }
}
