/* Movvent Partners: the sponsor pages (overview, reach, impact report, profile). Class names start with .sp-. Colours and sizes
   come from the tokens in base.css and analytics.css. On screen the report pages are a toolbar and the report; in print
   (Print / Save as PDF) only the report prints: the Movvent band, the name and period, the figures, the months and the events. */

.sp-page { display: grid; gap: var(--s5); max-inline-size: 1100px; }
.sp-field { display: grid; gap: var(--s1); }
.sp-toolbar .an-toolbar-start { align-items: end; }
.sp-print-head { display: none; }
.sp-section-title { margin-block-end: var(--s3); }
.sp-method { font-size: .8125rem; color: var(--ink-muted); max-inline-size: 70ch; }
.sp-months, .sp-events { padding: var(--s4); }
.sp-chart .an-card-chart { min-block-size: 200px; }
.an-kpis.sp-kpis { grid-template-columns: repeat(auto-fit, minmax(136px, 1fr)); }
.sp-toolbar .select { min-block-size: 48px; }
.sp-events td { white-space: nowrap; }
.sp-events td:first-child { white-space: normal; min-inline-size: 140px; }

/* The company */
.sp-company { display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap; }
.sp-company-text { display: grid; gap: var(--s2); min-inline-size: 0; flex: 1 1 260px; }
.sp-company-name { font-size: 1.5rem; line-height: 1.25; overflow-wrap: anywhere; }
.sp-company-badges { display: flex; flex-wrap: wrap; gap: var(--s2); }
.sp-company-badges:empty { display: none; }
.sp-company-about { color: var(--ink-muted); max-inline-size: 70ch; }
.sp-company-link { overflow-wrap: anywhere; }
.sp-logo { inline-size: 44px; block-size: 44px; }
.sp-logo-lg { inline-size: 72px; block-size: 72px; border: 1px solid var(--line); background: var(--surface); }
.sp-logo.pt-logo img { object-fit: contain; padding: var(--s1); }
.sp-logo-lg.pt-logo-empty { font-size: 1.75rem; font-weight: 700; color: var(--ink-muted); background: var(--surface-2); }

/* Waiting request and last decision */
.sp-status { display: grid; gap: var(--s3); }
.sp-status:empty { display: none; }
.sp-request { display: grid; gap: var(--s1); padding: var(--s3) var(--s4); border-radius: var(--r-md); font-weight: 600; max-inline-size: 70ch; }
.sp-request.tone-info { background: var(--info-soft); color: var(--on-info-soft); }
.sp-request.tone-success { background: var(--success-soft); color: var(--on-success-soft); }
.sp-request.tone-warning { background: var(--warning-soft); color: var(--on-warning-soft); }
.sp-request-reason { font-weight: 400; overflow-wrap: anywhere; }
.sp-waiting { display: grid; gap: var(--s4); }
.sp-waiting-logo { display: grid; gap: var(--s2); justify-items: start; }
.sp-waiting-logo:has(.is-failed) { display: none; }
.sp-waiting-actions { display: flex; }

/* Where to go next */
.sp-actions { display: flex; flex-wrap: wrap; gap: var(--s3); }
.sp-actions .btn { text-decoration: none; }

/* The profile form */
.sp-form { display: grid; gap: var(--s5); }
.sp-form-grid { display: grid; gap: var(--s4) var(--s5); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.sp-form-actions { display: flex; justify-content: flex-start; }
.sp-note { color: var(--ink-muted); }
.sp-counter { font-size: .8125rem; color: var(--ink-muted); text-align: end; font-variant-numeric: tabular-nums; }
.sp-counter.is-over { color: var(--danger); font-weight: 600; }
.sp-logo-field { display: grid; gap: var(--s3); }
.sp-file { padding: var(--s2) var(--s3); color: var(--ink-muted); }
.sp-file::file-selector-button {
  margin-inline-end: var(--s3); padding: 6px 14px; border: 1px solid var(--line-strong); border-radius: var(--r-full);
  background: var(--surface); color: var(--ink); font: inherit; font-weight: 600; cursor: pointer;
}
.sp-file::file-selector-button:hover { background: var(--surface-2); }
.sp-logo-preview { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.sp-logo-img { inline-size: 72px; block-size: 72px; object-fit: contain; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); padding: var(--s1); }

@media (max-width: 760px) {
  .sp-form-grid { grid-template-columns: minmax(0, 1fr); }
  .sp-company-name { font-size: 1.25rem; }
  .sp-actions .btn { flex: 1 1 100%; justify-content: center; }
  .sp-toolbar .sp-field { inline-size: 100%; }
}

@media print {
  @page { size: A4; margin: 14mm; }

  :root {
    --bg: #FFFFFF; --surface: #FFFFFF; --surface-2: #F3F5F0; --surface-3: #E9EDE5;
    --ink: #0C2219; --ink-muted: #3B4A41; --ink-faint: #3B4A41;
    --line: rgb(12 34 25 / .2); --line-strong: rgb(12 34 25 / .4);
    --an-main: #0B6B45; --an-prev: #8A978F; --accent: #0B6B45;
    --shadow-card: none;
  }
  html, body { background: #FFFFFF; color: var(--ink); font-size: 11px; }
  .sidebar, .topbar, .scrim, .skip-link, .toasts, dialog, .sp-toolbar, .an-view-toggle, .unlock-pill { display: none !important; }
  .shell { display: block; min-block-size: 0; }
  .main { display: block; }
  .content { padding: 0; }
  .page { max-inline-size: none; }

  .sp-page { gap: 14px; max-inline-size: none; }
  .sp-print-head { display: block; break-after: avoid; }
  .sp-band {
    background: var(--forest); padding: 10px 16px; border-radius: 6px; display: flex; align-items: center;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .sp-lockup { block-size: 32px; inline-size: auto; }
  .sp-kicker { margin-block-start: 14px; font-size: .8125rem; font-weight: 600; color: var(--ink-muted); text-transform: uppercase; letter-spacing: .06em; }
  .sp-name { font-size: 1.75rem; line-height: 1.2; margin-block-start: 2px; }
  .sp-period { font-size: 1rem; color: var(--ink-muted); margin-block-start: 2px; }

  .sp-report { gap: 12px; }
  .an-kpis.sp-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; break-inside: avoid; }
  .sp-kpis .tile-value { font-size: 1.5rem; }
  .card, .tile { box-shadow: none; border: 1px solid var(--line-strong); background: #FFFFFF; break-inside: avoid; }
  .sp-events { break-inside: auto; }
  .table-wrap { overflow: visible; border: 0; }
  table.data { font-size: 10px; inline-size: 100%; }
  table.data thead { display: table-header-group; }
  table.data tr { break-inside: avoid; }
  table.data th, table.data td { padding: 4px 6px; }
  .th-sort { font: inherit; color: inherit; }
  .sort-mark { display: none; }
  .sp-method { color: var(--ink); border-block-start: 1px solid var(--line-strong); padding-block-start: 8px; }
  .sp-report.an-is-busy { opacity: 1; }
}
