/* Campaigns, Approved for Go Live and Analytics. Same tokens and 3px-ink
   language as lc.css / marketing.css. */

.mb { margin-bottom: 14px; }

/* ---------- campaigns ---------- */
.camp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }
.camp-card { display: flex; flex-direction: column; gap: 9px; text-decoration: none; color: var(--ink); background: var(--white);
  border: 3px solid var(--ink); border-radius: 18px; padding: 14px 16px; box-shadow: 5px 5px 0 var(--ink); transition: transform .12s, box-shadow .12s; }
.camp-card:hover { transform: translate(2px, 2px); box-shadow: 3px 3px 0 var(--ink); }
.camp-card .t { font-family: var(--display); font-weight: 800; font-size: 18px; line-height: 1.15; }
.camp-card .s { font-size: 13.5px; color: var(--muted-2); }
.camp-card .nums { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12.5px; color: var(--muted-2); }
.camp-card .nums b { color: var(--ink); font-family: var(--display); font-size: 15px; }
.camp-card .foot { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: auto; padding-top: 8px;
  border-top: 2px dashed var(--line); font-size: 12.5px; }

/* ---------- approved for go live ---------- */
.pub-list { display: flex; flex-direction: column; gap: 18px; }
.pub-item { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 18px; background: var(--white);
  border: 3px solid var(--ink); border-radius: 18px; padding: 16px; box-shadow: 5px 5px 0 var(--ink); border-left: 12px solid var(--bc, var(--sun)); }
.pi-media { display: flex; gap: 8px; flex-wrap: wrap; align-content: flex-start; }
.pi-media .thumb { width: 120px; }
.pi-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pi-body .t { font-family: var(--display); font-weight: 800; font-size: 19px; line-height: 1.15; color: var(--ink); text-decoration: none; }
.pi-body .t:hover { text-decoration: underline; }
.pi-body .cap { font-size: 13.5px; white-space: pre-wrap; }
.pi-posts { display: flex; flex-direction: column; gap: 8px; margin: 4px 0; }
.post-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: var(--paper);
  border: 2px solid var(--ink); border-radius: 12px; padding: 8px 12px; }
.post-row .pr-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.post-row.st-failed { background: #fff3f3; border-color: var(--red); }
.post-row.st-published { background: #f3ffd6; }
.post-row.st-cancelled { opacity: .6; }
.chip.pf-instagram { background: #ffe3f3; } .chip.pf-linkedin { background: #dfe4ff; }
.chip.pf-youtube { background: #ffd9db; } .chip.pf-facebook { background: #dcf8fb; }
@media (max-width: 760px) { .pub-item { grid-template-columns: 1fr; } }

/* ---------- analytics ---------- */
.pf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.pf-card { border: 3px solid var(--ink); border-radius: 16px; padding: 12px 14px; background: var(--paper); }
.pf-card .h { font-family: var(--display); font-weight: 800; font-size: 16px; margin-bottom: 10px; }
.pf-card.pf-instagram { background: #fff0f8; } .pf-card.pf-linkedin { background: #eef0ff; }
.pf-card.pf-youtube { background: #fff2f2; } .pf-card.pf-facebook { background: #eefcfd; }
.funnel-tbl tfoot td { font-weight: 800; border-top: 3px solid var(--ink); background: var(--cream); }
.right { text-align: right; }
