/* Scene 9, grounded campaign builder */
.campaign-plan-page {
  max-width: 1280px;
  margin: 0 auto;
}

.campaign-plan-page .page-heading {
  margin-bottom: 18px;
  align-items: center;
}

.campaign-plan-page .page-heading h1 {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #091c40;
  margin-bottom: 5px;
}

.campaign-plan-page .page-heading .lead {
  font-size: 14px;
  color: #425272;
}

.campaign-sparkle {
  color: #1769ff;
  font-size: .75em;
  line-height: 1;
}

.campaign-plan-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.52fr) minmax(330px, .72fr);
  gap: 18px;
  align-items: start;
}

.campaign-plan-main,
.campaign-plan-rail {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.campaign-plan-page .card {
  border-color: #dce2ef;
  box-shadow: 0 8px 24px #193a6d0c;
}

.campaign-brief-card {
  padding: 15px 17px 16px;
  background: linear-gradient(110deg, #fff 0%, #fafbff 100%);
}

.campaign-brief-card .card-header {
  margin-bottom: 11px;
}

.campaign-brief-value {
  border: 1px solid #e0e5f0;
  border-radius: 9px;
  padding: 15px 16px;
  background: #fff;
  color: #172b52;
  line-height: 1.55;
}

.campaign-brief-card .field {
  margin: 0;
}

.campaign-brief-card textarea {
  border-radius: 9px;
  border-color: #cbd6ea;
  background: #fff;
}

.campaign-generated-card {
  padding: 15px 0 0;
  overflow: hidden;
}

.campaign-generated-card > .card-header {
  padding: 0 17px 13px;
  margin-bottom: 0;
}

.campaign-section-title,
.campaign-source-label,
.campaign-summary-label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.campaign-section-title strong,
.campaign-source-label strong {
  color: #0b2147;
}

.campaign-plan-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #eaf1ff;
  color: #1769ff;
}

.campaign-plan-icon svg {
  width: 22px;
  height: 22px;
}

.campaign-plan-icon.purple { color: #7251e8; background: #eeeaff; }
.campaign-plan-icon.blue { color: #1769ff; background: #e6f0ff; }
.campaign-plan-icon.teal { color: #0a9999; background: #e2f7f5; }
.campaign-plan-icon.green { color: #12835a; background: #e2f5e9; }
.campaign-plan-icon.orange { color: #d47800; background: #fff1dd; }
.campaign-plan-icon.amber { color: #d66d00; background: #fff1de; }
.campaign-plan-icon.pink { color: #df3168; background: #ffe9f0; }
.campaign-plan-icon.red { color: #cf2642; background: #ffebee; }
.campaign-plan-icon.muted { display: inline; width: 15px; height: 15px; border: 0; background: transparent; color: #71809b; vertical-align: -3px; }
.campaign-plan-icon.muted svg { width: 15px; height: 15px; }

.campaign-plan-rows {
  border-top: 1px solid #e4e8f0;
}

.campaign-plan-row {
  display: grid;
  grid-template-columns: 34px 50px minmax(0, 1fr) minmax(155px, 190px) 58px;
  gap: 12px;
  align-items: center;
  min-height: 87px;
  padding: 12px 17px;
  border-bottom: 1px solid #e4e8f0;
  transition: background .16s ease;
}

.campaign-plan-row:last-child { border-bottom: 0; }
.campaign-plan-row:hover,
.campaign-plan-row.is-open { background: #fbfcff; }

.campaign-plan-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  color: #fff;
  background: #1769ff;
  font-size: 12px;
  font-weight: 700;
}

.tone-purple .campaign-plan-number { background: #7b56e7; }
.tone-blue .campaign-plan-number { background: #1774eb; }
.tone-teal .campaign-plan-number { background: #11a4a4; }
.tone-green .campaign-plan-number { background: #15925f; }
.tone-orange .campaign-plan-number { background: #ef9a00; }
.tone-amber .campaign-plan-number { background: #ed7900; }
.tone-pink .campaign-plan-number { background: #e63d72; }

.campaign-plan-copy {
  min-width: 0;
}

.campaign-plan-copy h3 {
  margin: 0 0 3px;
  color: #0c2148;
  font-size: 14px;
}

.campaign-plan-copy p {
  margin: 0;
  color: #30466e;
  font-size: 12px;
  line-height: 1.4;
}

.campaign-plan-detail {
  margin-top: 7px;
  color: #1769ff;
  font-size: 11px;
  line-height: 1.4;
}

.campaign-plan-detail span {
  color: #6b7891;
}

.campaign-plan-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: #1d3156;
}

.campaign-plan-meta .campaign-plan-icon {
  width: 25px;
  height: 25px;
  border-radius: 7px;
  background: transparent;
}

.campaign-plan-meta .campaign-plan-icon svg {
  width: 20px;
  height: 20px;
}

.campaign-plan-meta span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.campaign-plan-meta small {
  color: #5d6d8d;
  font-size: 11px;
}

.campaign-plan-meta strong {
  color: #21375e;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.35;
}

.campaign-plan-toggle {
  justify-self: end;
  color: #102b5a !important;
  font-size: 0 !important;
  width: 29px;
  height: 29px;
  padding: 0 !important;
  border-radius: 50% !important;
  position: relative;
}

.campaign-plan-toggle::after {
  content: '⌄';
  display: block;
  font-size: 17px;
  line-height: 26px;
  transition: transform .16s ease;
}

.campaign-plan-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }

.campaign-sources-card {
  padding: 17px;
}

.campaign-sources-card > p {
  margin: 0 0 12px;
  line-height: 1.45;
}

.campaign-source-card {
  padding: 13px;
  margin-top: 10px;
  border: 1px solid #dfe5ef;
  border-radius: 10px;
  background: #fff;
}

.campaign-source-card.blocked {
  border-color: #f0b8c1;
  background: #fffafb;
}

.campaign-source-card .campaign-plan-icon {
  width: 31px;
  height: 31px;
  border-radius: 8px;
}

.campaign-source-card .campaign-plan-icon svg {
  width: 18px;
  height: 18px;
}

.campaign-source-card .campaign-source-label {
  gap: 8px;
  font-size: 12px;
}

.campaign-source-card p {
  margin: 10px 0 4px 39px;
  color: #1d3155;
  font-size: 12px;
  line-height: 1.45;
}

.campaign-source-card .btn.link {
  margin-left: 39px;
  font-size: 11px;
}

.campaign-rationale-card {
  padding: 15px 17px;
  background: linear-gradient(135deg, #f7f6ff, #f1f4ff);
  border-color: #dde0fa !important;
}

.campaign-rationale-card p {
  margin: 10px 0 8px 50px;
  color: #3d4d70;
  line-height: 1.45;
}

.campaign-rationale-card .btn.link { margin-left: 50px; font-size: 11px; }

.campaign-network-disclosure {
  border: 1px solid #dce2ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 5px 18px #193a6d08;
}

.campaign-network-disclosure summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 15px;
  color: #0b2147;
  list-style: none;
}

.campaign-network-disclosure summary::-webkit-details-marker { display: none; }
.campaign-summary-label .campaign-plan-icon { width: 32px; height: 32px; border-radius: 8px; }
.campaign-summary-label > span:not(.campaign-plan-icon) { display: flex; flex-direction: column; gap: 2px; }
.campaign-summary-label small { color: #657492; font-size: 11px; font-weight: 400; }
.campaign-disclosure-chevron { color: #4d638a; font-size: 18px; transition: transform .16s ease; }
.campaign-network-disclosure[open] .campaign-disclosure-chevron { transform: rotate(180deg); }

.campaign-network-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 0 15px 14px;
  border-top: 1px solid #e7eaf1;
}

.campaign-network-stat { padding-top: 12px; }
.campaign-network-stat strong { display: block; color: #1769ff; font-size: 21px; }
.campaign-network-stat span { color: #657492; font-size: 11px; }
.campaign-network-body .row { grid-column: 1 / -1; }

.campaign-plan-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 17px;
}

.campaign-provenance-note {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 1;
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid #dae1f1;
  border-radius: 8px;
  color: #536483;
  background: #f7f8fd;
  font-size: 11px;
  line-height: 1.45;
}

.campaign-provenance-note .campaign-plan-icon { width: 23px; height: 23px; border-radius: 50%; }
.campaign-provenance-note .campaign-plan-icon svg { width: 15px; height: 15px; }
.campaign-plan-footer-actions { justify-content: flex-end; }
.campaign-plan-footer-actions .btn { white-space: nowrap; }

@media (max-width: 1100px) {
  .campaign-plan-grid { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .78fr); }
  .campaign-plan-row { grid-template-columns: 30px 43px minmax(0, 1fr) 145px 38px; gap: 9px; padding-left: 13px; padding-right: 13px; }
  .campaign-plan-row > .campaign-plan-icon { width: 36px; height: 36px; }
}

@media (max-width: 820px) {
  .campaign-plan-grid { grid-template-columns: 1fr; }
  .campaign-plan-rail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .campaign-sources-card { grid-column: 1 / -1; }
  .campaign-plan-rail .campaign-network-disclosure { align-self: start; }
  .campaign-plan-footer { align-items: stretch; flex-direction: column; }
  .campaign-plan-footer-actions { justify-content: flex-start; }
}

@media (max-width: 620px) {
  .campaign-plan-page .page-heading { align-items: flex-start; }
  .campaign-plan-page .page-heading > .row { width: 100%; }
  .campaign-plan-page .page-heading > .row .btn { flex: 1; }
  .campaign-plan-grid { gap: 12px; }
  .campaign-plan-rail { display: flex; }
  .campaign-plan-row { grid-template-columns: 27px 38px minmax(0, 1fr) 29px; gap: 8px; padding: 12px 11px; min-height: 82px; }
  .campaign-plan-row > .campaign-plan-icon { width: 34px; height: 34px; }
  .campaign-plan-meta { display: none; }
  .campaign-plan-copy h3 { font-size: 13px; }
  .campaign-plan-copy p { font-size: 11px; }
  .campaign-plan-toggle { grid-column: 4; grid-row: 1; }
  .campaign-plan-copy { grid-column: 3; }
  .campaign-generated-card > .card-header { align-items: flex-start; flex-wrap: wrap; }
  .campaign-generated-card > .card-header > .btn { width: 100%; }
  .campaign-sources-card, .campaign-rationale-card { padding: 14px; }
  .campaign-source-card p { margin-left: 0; }
  .campaign-source-card .btn.link, .campaign-rationale-card .btn.link { margin-left: 0; }
  .campaign-rationale-card p { margin-left: 0; }
  .campaign-plan-footer-actions { width: 100%; }
  .campaign-plan-footer-actions .btn { flex: 1; }
}
