/**
 * Partner Program styles: admin manager (.ca-ppm), staff guide (.ca-ppg),
 * public pages (.ca-partner-public), application (.ca-partner-apply), and
 * Partner Center (.ca-pc).
 */

/* ── Shared ─────────────────────────────────────────────────── */
.ca-partner-loading { padding: 48px 0; text-align: center; color: var(--ca-t-gray-500, #6b7280); }
.ca-ppm-empty { color: var(--ca-t-gray-500, #6b7280); font-style: italic; margin: 12px 0; }

/* ── Manager shell ──────────────────────────────────────────── */
.ca-ppm { max-width: 1240px; margin: 0 auto; padding: 24px 16px 64px; }
.ca-ppm__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.ca-ppm__title { margin: 0 0 4px; font-size: 28px; }
.ca-ppm__lede { margin: 0; color: var(--ca-t-gray-500, #6b7280); max-width: 720px; }
.ca-ppm__header-links { display: flex; gap: 8px; }
.ca-ppm__hlink { font-size: 13px; padding: 6px 12px; border: 1px solid var(--ca-s-gray-300, #d1d5db); border-radius: 8px; text-decoration: none; color: var(--ca-t-gray-700, #374151); background: var(--ca-s-white, #ffffff); }
.ca-ppm__hlink:hover { border-color: var(--ca-s-blue-600, #2563eb); color: var(--ca-t-blue-600, #2563eb); }
.ca-ppm__nav { display: flex; gap: 4px; flex-wrap: wrap; margin: 20px 0 16px; border-bottom: 1px solid var(--ca-s-gray-200, #e5e7eb); padding-bottom: 8px; }
.ca-ppm__nav-btn { padding: 7px 14px; border-radius: 8px; font-size: 14px; text-decoration: none; color: var(--ca-t-gray-700, #374151); }
.ca-ppm__nav-btn:hover { background: var(--ca-s-gray-100, #f3f4f6); }
.ca-ppm__nav-btn.is-active { background: var(--ca-s-gray-900, #111827); color: var(--ca-t-white, #ffffff); }
.ca-ppm__notice { padding: 10px 14px; border-radius: 8px; font-size: 14px; margin: 0 0 14px; }
.ca-ppm__notice.is-ok { background: var(--ca-s-emerald-50, #ecfdf5); color: var(--ca-t-emerald-800, #065f46); border: 1px solid var(--ca-s-emerald-200, #a7f3d0); }
.ca-ppm__notice.is-error { background: var(--ca-s-red-50, #fef2f2); color: var(--ca-t-red-800, #991b1b); border: 1px solid var(--ca-s-red-200, #fecaca); }

/* ── Manager components ─────────────────────────────────────── */
.ca-ppm-panel { background: var(--ca-s-white, #ffffff); border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 12px; padding: 20px; margin-bottom: 20px; }
.ca-ppm-panel h2 { margin: 0 0 8px; font-size: 20px; }
.ca-ppm-panel h2 a { text-decoration: none; color: var(--ca-t-blue-600, #2563eb); }
.ca-ppm-panel h3 { margin: 20px 0 8px; font-size: 16px; }
.ca-ppm-panel__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.ca-ppm-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.ca-ppm-hint { color: var(--ca-t-gray-500, #6b7280); font-size: 13px; margin: 6px 0 14px; }
.ca-ppm-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-bottom: 20px; }
.ca-ppm-kpi { background: var(--ca-s-white, #ffffff); border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 12px; padding: 14px; text-align: center; }
.ca-ppm-kpi__num { font-size: 24px; font-weight: 700; color: var(--ca-t-gray-900, #111827); }
.ca-ppm-kpi__label { font-size: 12px; color: var(--ca-t-gray-500, #6b7280); margin-top: 2px; }
.ca-ppm-list { margin: 8px 0; padding-left: 18px; }
.ca-ppm-list li { margin-bottom: 6px; }
.ca-ppm-flags li { color: var(--ca-t-amber-800, #92400e); }
.ca-ppm-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 900px) { .ca-ppm-cols { grid-template-columns: 1fr; } }

.ca-ppm-table-wrap { overflow-x: auto; margin: 8px 0 16px; }
.ca-ppm-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ca-ppm-table th { text-align: left; padding: 8px 10px; border-bottom: 2px solid var(--ca-s-gray-200, #e5e7eb); font-size: 12px; text-transform: uppercase; letter-spacing: 0.03em; color: var(--ca-t-gray-500, #6b7280); white-space: nowrap; }
.ca-ppm-table td { padding: 9px 10px; border-bottom: 1px solid var(--ca-s-gray-100, #f3f4f6); vertical-align: top; }
.ca-ppm-table tr:hover td { background: var(--ca-s-gray-50, #f9fafb); }
.ca-ppm-table small { color: var(--ca-t-gray-500, #6b7280); }
.ca-ppm-table a { color: var(--ca-t-blue-600, #2563eb); text-decoration: none; }

.ca-ppm-btn { display: inline-block; padding: 7px 13px; border: 1px solid var(--ca-s-gray-300, #d1d5db); border-radius: 8px; background: var(--ca-s-white, #ffffff); color: var(--ca-t-gray-700, #374151); font-size: 13px; cursor: pointer; }
.ca-ppm-btn:hover { border-color: var(--ca-s-gray-400, #9ca3af); background: var(--ca-s-gray-50, #f9fafb); }
.ca-ppm-btn--primary { background: var(--ca-s-blue-600, #2563eb); border-color: var(--ca-s-blue-600, #2563eb); color: var(--ca-t-white, #ffffff); }
.ca-ppm-btn--primary:hover { background: var(--ca-s-blue-700, #1d4ed8); border-color: var(--ca-s-blue-700, #1d4ed8); }
.ca-ppm-btn--danger { color: var(--ca-t-red-700, #b91c1c); border-color: var(--ca-s-red-200, #fecaca); }
.ca-ppm-btn--danger:hover { background: var(--ca-s-red-50, #fef2f2); border-color: var(--ca-s-red-500, #ef4444); }
.ca-ppm-btn--small { padding: 4px 9px; font-size: 12px; }

.ca-ppm-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; background: var(--ca-s-gray-100, #f3f4f6); color: var(--ca-t-gray-700, #374151); white-space: nowrap; }
.ca-ppm-badge--published, .ca-ppm-badge--active, .ca-ppm-badge--approved, .ca-ppm-badge--paid, .ca-ppm-badge--complete, .ca-ppm-badge--closed_won, .ca-ppm-badge--accepted { background: var(--ca-s-emerald-50, #ecfdf5); color: var(--ca-t-emerald-800, #065f46); }
.ca-ppm-badge--draft, .ca-ppm-badge--started { background: var(--ca-s-blue-50, #eff6ff); color: var(--ca-t-blue-800, #1e40af); }
.ca-ppm-badge--submitted, .ca-ppm-badge--under_review, .ca-ppm-badge--pending_qualification, .ca-ppm-badge--processing, .ca-ppm-badge--onboarding, .ca-ppm-badge--in_review, .ca-ppm-badge--screening, .ca-ppm-badge--legal_review, .ca-ppm-badge--finance_review, .ca-ppm-badge--technical_review, .ca-ppm-badge--payable, .ca-ppm-badge--pending_agreement, .ca-ppm-badge--pending_documents, .ca-ppm-badge--needs_information, .ca-ppm-badge--active_opportunity { background: var(--ca-s-amber-50, #fffbeb); color: var(--ca-t-amber-800, #92400e); }
.ca-ppm-badge--rejected, .ca-ppm-badge--terminated, .ca-ppm-badge--suspended, .ca-ppm-badge--reversed, .ca-ppm-badge--closed_lost, .ca-ppm-badge--failed, .ca-ppm-badge--voided, .ca-ppm-badge--disputed, .ca-ppm-badge--expired, .ca-ppm-badge--non_compliant { background: var(--ca-s-red-50, #fef2f2); color: var(--ca-t-red-800, #991b1b); }
.ca-ppm-badge--paused, .ca-ppm-badge--superseded, .ca-ppm-badge--retired, .ca-ppm-badge--archived, .ca-ppm-badge--waived, .ca-ppm-badge--duplicate, .ca-ppm-badge--withdrawn { background: var(--ca-s-gray-100, #f3f4f6); color: var(--ca-t-gray-500, #6b7280); }
.ca-ppm-flag { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; background: var(--ca-s-amber-100, #fef3c7); color: var(--ca-t-amber-800, #92400e); }

.ca-ppm-subnav { display: flex; gap: 2px; flex-wrap: wrap; margin: 12px 0 18px; border-bottom: 1px solid var(--ca-s-gray-200, #e5e7eb); }
.ca-ppm-subnav a { padding: 8px 13px; font-size: 13px; text-decoration: none; color: var(--ca-t-gray-500, #6b7280); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.ca-ppm-subnav a:hover { color: var(--ca-t-gray-900, #111827); }
.ca-ppm-subnav a.is-active { color: var(--ca-t-blue-600, #2563eb); border-bottom-color: var(--ca-s-blue-600, #2563eb); font-weight: 600; }

.ca-ppm-grid { display: grid; gap: 14px; max-width: 760px; }
.ca-ppm-field { display: block; }
.ca-ppm-field__label { display: block; font-size: 13px; font-weight: 600; color: var(--ca-t-gray-700, #374151); margin-bottom: 4px; }
.ca-ppm-field__hint { display: block; font-size: 12px; color: var(--ca-t-gray-400, #9ca3af); margin-top: 3px; }
.ca-ppm-input { width: 100%; padding: 8px 10px; border: 1px solid var(--ca-s-gray-300, #d1d5db); border-radius: 8px; font-size: 14px; box-sizing: border-box; font-family: inherit; }
.ca-ppm-input:focus { outline: 2px solid var(--ca-s-blue-200, #bfdbfe); border-color: var(--ca-s-blue-600, #2563eb); }
textarea.ca-ppm-input { resize: vertical; }
.ca-ppm-check { display: block; font-size: 14px; margin: 4px 0; }
.ca-ppm-childform { background: var(--ca-s-gray-50, #f9fafb); border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 10px; padding: 16px; margin-top: 14px; }
.ca-ppm-hash { font-size: 11px; background: var(--ca-s-gray-100, #f3f4f6); padding: 2px 5px; border-radius: 4px; }
.ca-ppm-snapshot { background: var(--ca-s-slate-900, #0f172a); color: var(--ca-t-slate-200, #e2e8f0); border-radius: 10px; padding: 16px; font-size: 12px; overflow: auto; max-height: 480px; margin-top: 12px; }

/* ── Staff guide ────────────────────────────────────────────── */
.ca-ppg { max-width: 880px; margin: 0 auto; padding: 24px 16px 64px; }
.ca-ppg h1 { font-size: 30px; margin-bottom: 6px; }
.ca-ppg__lede { color: var(--ca-t-gray-500, #6b7280); font-size: 16px; margin-bottom: 20px; }
.ca-ppg__toc { background: var(--ca-s-gray-50, #f9fafb); border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 12px; padding: 16px 20px; margin-bottom: 28px; }
.ca-ppg__toc ol { margin: 8px 0 0; padding-left: 20px; }
.ca-ppg__toc a { text-decoration: none; color: var(--ca-t-blue-600, #2563eb); }
.ca-ppg section { margin-bottom: 36px; }
.ca-ppg h2 { font-size: 22px; border-bottom: 1px solid var(--ca-s-gray-200, #e5e7eb); padding-bottom: 8px; margin: 32px 0 12px; }
.ca-ppg h3 { font-size: 17px; margin: 20px 0 8px; }
.ca-ppg ol, .ca-ppg ul { padding-left: 22px; }
.ca-ppg li { margin-bottom: 6px; line-height: 1.55; }
.ca-ppg p { line-height: 1.6; }
.ca-ppg code { background: var(--ca-s-gray-100, #f3f4f6); padding: 1px 6px; border-radius: 5px; font-size: 13px; }
.ca-ppg__callout { border-left: 4px solid var(--ca-s-blue-600, #2563eb); background: var(--ca-s-blue-50, #eff6ff); padding: 12px 16px; border-radius: 0 10px 10px 0; margin: 14px 0; }
.ca-ppg__callout--warn { border-color: var(--ca-s-amber-600, #d97706); background: var(--ca-s-amber-50, #fffbeb); }
.ca-ppg__callout--danger { border-color: var(--ca-s-red-600, #dc2626); background: var(--ca-s-red-50, #fef2f2); }
.ca-ppg table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 10px 0 16px; }
.ca-ppg th { text-align: left; padding: 8px 10px; border-bottom: 2px solid var(--ca-s-gray-200, #e5e7eb); }
.ca-ppg td { padding: 8px 10px; border-bottom: 1px solid var(--ca-s-gray-100, #f3f4f6); vertical-align: top; }

/* ── Public /partners ───────────────────────────────────────── */
.ca-partner-public { max-width: 1080px; margin: 0 auto; padding: 32px 16px 64px; }
.ca-pp-hero { text-align: center; padding: 24px 0 36px; }
.ca-pp-hero h1 { font-size: 34px; margin: 0 0 10px; }
.ca-pp-hero p { color: var(--ca-t-gray-500, #6b7280); font-size: 17px; max-width: 640px; margin: 0 auto; }
.ca-pp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin: 24px 0; }
.ca-pp-card { border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 14px; padding: 24px; background: var(--ca-s-white, #ffffff); display: flex; flex-direction: column; }
.ca-pp-card h2 { margin: 0 0 6px; font-size: 20px; }
.ca-pp-card__type { font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ca-t-blue-600, #2563eb); font-weight: 700; margin-bottom: 8px; }
.ca-pp-card p { color: var(--ca-t-gray-600, #4b5563); flex: 1; }
.ca-pp-card ul { padding-left: 18px; color: var(--ca-t-gray-600, #4b5563); font-size: 14px; }
.ca-pp-card li { margin-bottom: 4px; }
.ca-pp-cta { display: inline-block; margin-top: 14px; padding: 10px 18px; background: var(--ca-s-blue-600, #2563eb); color: var(--ca-t-white, #ffffff); border-radius: 9px; text-decoration: none; font-weight: 600; text-align: center; }
.ca-pp-cta:hover { background: var(--ca-s-blue-700, #1d4ed8); color: var(--ca-t-white, #ffffff); }
.ca-pp-cta--ghost { background: var(--ca-s-white, #ffffff); color: var(--ca-t-blue-600, #2563eb); border: 1px solid var(--ca-s-blue-200, #bfdbfe); }
.ca-pp-cta--ghost:hover { background: var(--ca-s-blue-50, #eff6ff); color: var(--ca-t-blue-700, #1d4ed8); }
.ca-pp-compare { overflow-x: auto; margin: 24px 0; }
.ca-pp-compare table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ca-pp-compare th { padding: 10px 12px; border-bottom: 2px solid var(--ca-s-gray-200, #e5e7eb); text-align: left; }
.ca-pp-compare td { padding: 9px 12px; border-bottom: 1px solid var(--ca-s-gray-100, #f3f4f6); }
.ca-pp-section-title { font-size: 24px; margin: 40px 0 12px; text-align: center; }
.ca-pp-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 20px 0; }
.ca-pp-tier { border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 12px; padding: 18px; background: var(--ca-s-white, #ffffff); }
.ca-pp-tier.is-recommended { border-color: var(--ca-s-blue-600, #2563eb); box-shadow: 0 0 0 1px var(--ca-s-blue-600, #2563eb); }
.ca-pp-tier h3 { margin: 0 0 4px; }
.ca-pp-tier__badge { font-size: 11px; font-weight: 700; color: var(--ca-t-blue-600, #2563eb); text-transform: uppercase; }
.ca-pp-tier ul { padding-left: 18px; font-size: 14px; color: var(--ca-t-gray-600, #4b5563); }
.ca-pp-faq { max-width: 720px; margin: 0 auto; }
.ca-pp-faq details { border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 10px; padding: 12px 16px; margin-bottom: 10px; background: var(--ca-s-white, #ffffff); }
.ca-pp-faq summary { font-weight: 600; cursor: pointer; }
.ca-pp-directory { margin-top: 32px; }
.ca-pp-disclosure { font-size: 12px; color: var(--ca-t-gray-400, #9ca3af); text-align: center; margin-top: 40px; }

/* ── Application form ───────────────────────────────────────── */
.ca-partner-apply { max-width: 680px; margin: 0 auto; padding: 32px 16px 64px; }
.ca-partner-apply h1 { font-size: 26px; }
.ca-pa-progress { font-size: 13px; color: var(--ca-t-gray-500, #6b7280); margin-bottom: 16px; }
.ca-pa-field { margin-bottom: 16px; }
.ca-pa-field label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 5px; }
.ca-pa-field .req { color: var(--ca-t-red-600, #dc2626); }
.ca-pa-field input, .ca-pa-field textarea, .ca-pa-field select { width: 100%; padding: 10px 12px; border: 1px solid var(--ca-s-gray-300, #d1d5db); border-radius: 9px; font-size: 15px; box-sizing: border-box; font-family: inherit; }
.ca-pa-help { font-size: 12px; color: var(--ca-t-gray-400, #9ca3af); margin-top: 4px; }
.ca-pa-savenote { font-size: 12px; color: var(--ca-t-gray-500, #6b7280); margin: 10px 0; }
.ca-pa-success { text-align: center; padding: 40px 0; }
.ca-pa-success h2 { color: var(--ca-t-emerald-800, #065f46); }

/* ── Partner Center ─────────────────────────────────────────── */
.ca-pc { max-width: 1140px; margin: 0 auto; padding: 24px 16px 64px; }
.ca-pc__header h1 { margin: 0 0 4px; font-size: 26px; }
.ca-pc__status { color: var(--ca-t-gray-500, #6b7280); margin: 0 0 16px; }
.ca-pc__nav { display: flex; gap: 4px; flex-wrap: wrap; margin: 16px 0; border-bottom: 1px solid var(--ca-s-gray-200, #e5e7eb); padding-bottom: 8px; }
.ca-pc__nav a { padding: 7px 13px; border-radius: 8px; font-size: 14px; text-decoration: none; color: var(--ca-t-gray-700, #374151); }
.ca-pc__nav a:hover { background: var(--ca-s-gray-100, #f3f4f6); }
.ca-pc__nav a.is-active { background: var(--ca-s-gray-900, #111827); color: var(--ca-t-white, #ffffff); }
.ca-pc-panel { background: var(--ca-s-white, #ffffff); border: 1px solid var(--ca-s-gray-200, #e5e7eb); border-radius: 12px; padding: 20px; margin-bottom: 18px; }
.ca-pc-panel h2 { margin: 0 0 10px; font-size: 19px; }
.ca-pc-copy { cursor: pointer; font-size: 12px; padding: 3px 8px; border-radius: 6px; border: 1px solid var(--ca-s-gray-300, #d1d5db); background: var(--ca-s-white, #ffffff); }
.ca-pc-copy:hover { border-color: var(--ca-s-blue-600, #2563eb); color: var(--ca-t-blue-600, #2563eb); }
