/* Deal Dog Partnerships portal (partners-pages.js). Light-only, like the main site. */
:root {
  --pp-ease: cubic-bezier(.2, .8, .2, 1);
  --pp-blue: rgb(36, 80, 233);
  --pp-blue-d: rgb(20, 58, 195);
  --pp-blue-50: rgb(232, 236, 253);
  --pp-ink: #101828;
  --pp-ink-2: #344054;
  --pp-mute: #667085;
  --pp-line: #eaecf0;
  --pp-soft: #f9fafb;
  --pp-dark: #0b1531;
  --pp-ok: #067647;
  --pp-err: #b42318;
  --pp-radius: 16px;
  --pp-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }   /* .pp-row etc. set display, which would beat the UA's [hidden] */
body { margin: 0; background: #fff; color: var(--pp-ink); font: 15px/1.55 Inter, system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
h1, h2, h3 { letter-spacing: -0.02em; margin: 0; }

/* header */
.pp-header { border-bottom: 1px solid var(--pp-line); background: #fff; position: sticky; top: 0; z-index: 5; }
.pp-header-in { max-width: 1320px; margin: 0 auto; padding: 14px 16px; display: flex; align-items: center; gap: 14px; }
.pp-logo { display: flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 800; font-size: 20px; color: var(--pp-blue); }
.pp-logo img { border-radius: 8px; }
.pp-divider { width: 1px; height: 26px; background: var(--pp-line); }
.pp-chip { display: flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 600; }
.pp-chip-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--pp-blue-50); color: var(--pp-blue); }
.pp-nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.pp-nav > a { text-decoration: none; padding: 8px 14px; border-radius: 999px; font-weight: 500; color: var(--pp-ink-2); }
.pp-nav > a:hover { background: var(--pp-soft); }
.pp-nav > a.on { background: var(--pp-blue-50); color: var(--pp-blue); }
.pp-signin-link { margin-left: 6px; }
.pp-acct { position: relative; margin-left: 8px; }
.pp-acct summary { list-style: none; cursor: pointer; }
.pp-acct summary::-webkit-details-marker { display: none; }
.pp-avatar { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--pp-blue-50); color: var(--pp-blue); font-weight: 700; }
.pp-menu { position: absolute; right: 0; top: 44px; min-width: 220px; background: #fff; border: 1px solid var(--pp-line); border-radius: 12px; box-shadow: 0 12px 32px rgba(16, 24, 40, .12); padding: 6px; display: grid; }
.pp-menu a, .pp-menu button { text-align: left; padding: 9px 10px; border-radius: 8px; text-decoration: none; font: inherit; background: none; border: 0; cursor: pointer; color: var(--pp-ink); }
.pp-menu a:hover, .pp-menu button:hover { background: var(--pp-soft); }
.pp-menu-email { margin: 4px 10px 6px; color: var(--pp-mute); font-size: 13px; overflow-wrap: anywhere; }

/* layout */
.pp-main { max-width: 1060px; margin: 0 auto; padding: 40px 16px 80px; }
.pp-hero { text-align: center; margin: 12px 0 36px; }
.pp-hero h1 { font-size: 44px; line-height: 1.1; font-weight: 800; }
.pp-hero p { color: var(--pp-ink-2); font-size: 19px; max-width: 760px; margin: 14px auto 0; }
.pp-left-hero { text-align: left; }
.pp-left { text-align: left; }
.pp-section { margin: 40px 0 18px; }
.pp-section h2, .pp-sec-head h2, .pp-h2 { font-size: 22px; font-weight: 700; }
.pp-h2 { margin: 36px 0 14px; }
.pp-section p { margin: 8px 0 0; }
.pp-muted { color: var(--pp-mute); }
.pp-small { font-size: 13px; }
.pp-accent { color: var(--pp-blue); text-decoration: none; font-weight: 600; }
.pp-eyebrow { text-transform: uppercase; letter-spacing: .1em; font-size: 12px; font-weight: 700; margin: 0 0 6px; }
.pp-mono { font-family: var(--pp-mono); }
.pp-right { text-align: right; }
.pp-center { text-align: center; margin-top: 24px; }
.pp-row { display: flex; gap: 10px; align-items: center; }
.pp-wrap { flex-wrap: wrap; }
.pp-inline { display: inline; margin: 0; }

/* cards */
.pp-card { border: 1px solid var(--pp-line); border-radius: var(--pp-radius); padding: 22px; background: #fff; margin: 0 0 16px; }
.pp-card h3 { font-size: 18px; margin-bottom: 6px; }
.pp-flush { padding: 0; overflow: hidden; }
.pp-card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.pp-card-head strong { font-size: 18px; }
.pp-store { display: flex; align-items: center; gap: 10px; color: var(--pp-ink-2); font-weight: 500; }
.pp-select { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--pp-line); border-radius: 10px; padding: 7px 12px; font-weight: 600; color: var(--pp-ink); }
.pp-amz { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; background: #fff3d6; color: #c45500; font-weight: 800; font-size: 13px; }
.pp-field { display: grid; gap: 6px; font-weight: 600; font-size: 14px; margin: 0 0 12px; }
input, select, textarea { font: inherit; color: var(--pp-ink); border: 1px solid #d0d5dd; border-radius: 10px; padding: 10px 12px; background: #fff; max-width: 100%; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--pp-blue-50); border-color: var(--pp-blue); }
.pp-blocks { display: grid; gap: 12px; margin: 12px 0; }
.pp-block { width: 100%; font: 14px/1.6 var(--pp-mono); background: var(--pp-soft); resize: vertical; min-height: 200px; }
.pp-check { display: inline-flex; align-items: center; gap: 8px; color: var(--pp-ink-2); }
.pp-check input { width: 18px; height: 18px; }

/* buttons */
.pp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; padding: 11px 20px; font: 600 15px Inter, system-ui, sans-serif; border: 1px solid transparent; cursor: pointer; text-decoration: none; white-space: nowrap; }
.pp-btn:disabled { opacity: .45; cursor: not-allowed; }
.pp-btn-primary { background: var(--pp-blue); color: #fff; }
.pp-btn-primary:hover:not(:disabled) { background: var(--pp-blue-d); }
.pp-btn-dark { background: var(--pp-ink); color: #fff; }
.pp-btn-light { background: #fff; color: var(--pp-ink); padding: 14px 26px; font-size: 17px; }
.pp-btn-ghost { background: var(--pp-soft); color: var(--pp-ink-2); }
.pp-btn-soft { background: var(--pp-blue-50); color: var(--pp-blue); border-color: rgb(167, 184, 246); }
.pp-btn-outline { background: #fff; border-color: #d0d5dd; color: var(--pp-ink); }
.pp-btn-lg { padding: 15px 34px; font-size: 18px; }

/* submit page */
.pp-banner { display: flex; justify-content: space-between; align-items: center; gap: 24px; background: linear-gradient(135deg, var(--pp-dark), #1d2b5c); color: #fff; border-radius: var(--pp-radius); padding: 28px 30px; }
.pp-banner h2 { font-size: 28px; font-weight: 800; }
.pp-banner p { margin: 8px 0 0; color: #d6dcf2; max-width: 560px; }
.pp-banner .pp-eyebrow { color: #9fb4ff; }
.pp-errors { border: 1px solid var(--pp-err); color: var(--pp-err); border-radius: 12px; padding: 12px 16px; margin: 16px 0; background: #fff; }
.pp-errors ul { margin: 6px 0 0; padding-left: 20px; }
.pp-ok { color: var(--pp-ok); font-weight: 600; }
.pp-status { margin: 10px 0 0; min-height: 1em; }
.pp-status.err { color: var(--pp-err); }
.pp-status.ok { color: var(--pp-ok); }
.pp-signin form { margin-top: 12px; }
.pp-signin input { flex: 1; min-width: 0; }
.pp-done { border: 1px solid var(--pp-ok); color: var(--pp-ok); border-radius: 12px; padding: 14px 16px; margin: 16px 0; font-weight: 600; }

/* tables */
.pp-table-wrap { overflow-x: auto; }
.pp-table { border-collapse: collapse; width: 100%; font-size: 14px; }
.pp-table th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--pp-mute); font-weight: 600; background: var(--pp-soft); padding: 14px 16px; white-space: nowrap; }
.pp-table td { border-top: 1px solid var(--pp-line); padding: 14px 16px; vertical-align: middle; }
.pp-table .pp-pname { font-weight: 600; }
.pp-empty { text-align: center; color: var(--pp-mute); padding: 48px 16px !important; }
.pp-table-foot { border-top: 1px solid var(--pp-line); background: var(--pp-soft); padding: 12px 16px; color: var(--pp-ink-2); }
.pp-table-foot a { margin-left: 10px; }
.pp-rates td { font-size: 17px; padding: 18px 16px; }
.pp-key { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--pp-line); border-radius: 10px; font-weight: 700; font-size: 15px; }
.pp-details { background: none; border: 0; color: var(--pp-blue); font: 600 15px Inter, system-ui, sans-serif; cursor: pointer; }
/* Details rows: always in the table, collapsed to zero height until opened (animated below). */
.pp-detail-row td { border-top: 0; color: var(--pp-ink-2); font-size: 15px; padding-top: 0; padding-bottom: 0; transition: padding-bottom .28s var(--pp-ease); }
.pp-detail-row.open td { padding-bottom: 18px; }
.pp-pos { color: var(--pp-ok); }
.pp-bad td { background: #fffbfa; }
.pp-issue { color: var(--pp-err); font-size: 13px; }
.pp-status-pill { display: inline-block; border-radius: 999px; padding: 3px 10px; font-size: 12px; font-weight: 700; background: var(--pp-soft); color: var(--pp-ink-2); white-space: nowrap; }
.pp-st-approved { background: #dcfae6; color: var(--pp-ok); }
.pp-st-rejected, .pp-st-denied { background: #fee4e2; color: var(--pp-err); }
.pp-st-pending, .pp-st-requested { background: #fef0c7; color: #b54708; }

/* premium */
.pp-premium-head { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 36px; }
.pp-premium-head h1 { font-size: 40px; font-weight: 800; line-height: 1.1; }
.pp-lead { font-size: 18px; max-width: 700px; margin: 12px 0 0; }
.pp-sec-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 12px; flex-wrap: wrap; }
.pp-sec-head p { margin: 0; }
.pp-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.pp-steps .pp-card { margin: 0; }
.pp-steps h3 { margin-top: 12px; font-size: 16px; }
.pp-steps p { margin: 4px 0 0; font-size: 14px; }
.pp-num { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--pp-blue); color: #fff; font-weight: 700; font-size: 13px; }

/* your deals + wallet */
.pp-page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--pp-line); margin-bottom: 20px; }
.pp-page-head h1 { font-size: 30px; font-weight: 800; }
.pp-page-head p { margin: 4px 0 0; }
.pp-wallet-strip { display: flex; justify-content: space-between; align-items: center; border: 1px dashed #d0d5dd; border-radius: 12px; padding: 14px 18px; margin-bottom: 16px; }
.pp-toolbar { display: flex; gap: 10px; align-items: center; border: 1px solid var(--pp-line); border-radius: 12px; padding: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.pp-toolbar input[type=search] { flex: 1; min-width: 200px; }
.pp-toolbar .pp-btn { margin-left: auto; }
.pp-stats3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 18px; }
.pp-stats3 .pp-card { margin: 0; }
.pp-stat p { margin: 0; }
.pp-big { font-size: 40px; font-weight: 800; margin-top: 8px !important; }
.pp-mid { font-size: 28px; font-weight: 700; margin-top: 8px !important; }
.pp-preset { font: 600 16px var(--pp-mono); padding: 10px 18px; border-radius: 12px; border: 1px solid var(--pp-line); background: #fff; cursor: pointer; }
.pp-preset.on { border-color: var(--pp-blue); background: var(--pp-blue-50); }
.pp-money { flex: 1; display: flex; align-items: center; gap: 8px; border: 1px solid #d0d5dd; border-radius: 12px; padding: 0 12px; margin-top: 14px; }
.pp-money input { border: 0; flex: 1; font-family: var(--pp-mono); padding: 12px 0; outline: none; }
[data-pp-topup] .pp-row:last-of-type .pp-btn { margin-top: 14px; }

/* Your Deals date range: a styled dropdown (calendar icon, soft chevron), same height as search. */
.pp-range {
  appearance: none; -webkit-appearance: none;
  height: 46px; padding: 0 40px 0 42px; border: 1px solid #d0d5dd; border-radius: 12px;
  font: 500 15px Inter, system-ui, sans-serif; color: var(--pp-ink); cursor: pointer;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475467' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat, no-repeat;
  background-position: 14px 50%, right 14px center;
  background-size: 18px 18px, 16px 16px;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.pp-range:hover { border-color: #98a2b3; background-color: var(--pp-soft); }
.pp-range:focus { outline: none; border-color: var(--pp-blue); box-shadow: 0 0 0 4px var(--pp-blue-50); }
.pp-range:focus:not(:focus-visible) { box-shadow: none; border-color: #98a2b3; }
.pp-toolbar input[type=search] { height: 46px; border-radius: 12px; }
.pp-toolbar .pp-btn { height: 46px; }

/* Sign-in code step */
.pp-code { flex: 1; min-width: 0; font: 600 22px var(--pp-mono); letter-spacing: .35em; text-align: center; }
.pp-code-form:not([hidden]) { animation: pp-drop .3s var(--pp-ease) both; }
.pp-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--pp-blue); cursor: pointer; text-decoration: underline; }

/* ── motion ──────────────────────────────────────────────────────────────── */
@keyframes pp-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes pp-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pp-drop { from { opacity: 0; transform: translateY(-8px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes pp-pop { from { opacity: 0; transform: translateY(-6px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes pp-shake { 0%, 100% { transform: none; } 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }

/* Page enter: each top-level block rises in, a beat after the one above it. */
.pp-main > * { animation: pp-rise .55s var(--pp-ease) both; }
.pp-main > :nth-child(2) { animation-delay: .06s; }
.pp-main > :nth-child(3) { animation-delay: .12s; }
.pp-main > :nth-child(4) { animation-delay: .18s; }
.pp-main > :nth-child(5) { animation-delay: .24s; }
.pp-main > :nth-child(n+6) { animation-delay: .3s; }
.pp-steps > .pp-card { animation: pp-rise .5s var(--pp-ease) both; }
.pp-steps > .pp-card:nth-child(2) { animation-delay: .08s; }
.pp-steps > .pp-card:nth-child(3) { animation-delay: .16s; }
.pp-steps > .pp-card:nth-child(4) { animation-delay: .24s; }
.pp-stats3 > .pp-card { animation: pp-rise .5s var(--pp-ease) both; }
.pp-stats3 > .pp-card:nth-child(2) { animation-delay: .07s; }
.pp-stats3 > .pp-card:nth-child(3) { animation-delay: .14s; }
/* Table rows fade in down the list (the first 12; the rest arrive with the last). */
.pp-table tbody tr:not(.pp-detail-row) { animation: pp-fade .4s ease both; }
.pp-table tbody tr:nth-child(2) { animation-delay: 0.06s; }
.pp-table tbody tr:nth-child(3) { animation-delay: 0.09s; }
.pp-table tbody tr:nth-child(4) { animation-delay: 0.12s; }
.pp-table tbody tr:nth-child(5) { animation-delay: 0.15s; }
.pp-table tbody tr:nth-child(6) { animation-delay: 0.18s; }
.pp-table tbody tr:nth-child(7) { animation-delay: 0.21s; }
.pp-table tbody tr:nth-child(8) { animation-delay: 0.24s; }
.pp-table tbody tr:nth-child(9) { animation-delay: 0.27s; }
.pp-table tbody tr:nth-child(10) { animation-delay: 0.30s; }
.pp-table tbody tr:nth-child(11) { animation-delay: 0.33s; }
.pp-table tbody tr:nth-child(12) { animation-delay: 0.36s; }
/* Header: a soft shadow once the page scrolls under it. */
.pp-header { transition: box-shadow .2s ease, border-color .2s ease; }
.pp-header.scrolled { box-shadow: 0 6px 20px rgba(16, 24, 40, .07); border-color: transparent; }
.pp-nav > a, .pp-signin-link { transition: background-color .18s ease, color .18s ease; }
.pp-avatar { transition: transform .18s var(--pp-ease), box-shadow .18s ease; }
.pp-acct summary:hover .pp-avatar { transform: scale(1.06); box-shadow: 0 0 0 4px var(--pp-blue-50); }
.pp-acct[open] .pp-menu { animation: pp-pop .18s var(--pp-ease) both; transform-origin: top right; }

/* Buttons and links: smooth hover, a small press. */
.pp-btn, .pp-preset, .pp-details { transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .12s ease; }
.pp-btn:hover:not(:disabled) { box-shadow: 0 6px 16px rgba(16, 24, 40, .12); }
.pp-btn-dark:hover:not(:disabled) { background: #1d2939; }
.pp-btn-ghost:hover:not(:disabled) { background: #f2f4f7; }
.pp-btn-soft:hover:not(:disabled) { background: rgb(213, 221, 251); }
.pp-btn-outline:hover:not(:disabled) { border-color: var(--pp-blue); color: var(--pp-blue); }
.pp-btn:active:not(:disabled), .pp-preset:active { transform: scale(.97); }
.pp-preset:hover { border-color: rgb(167, 184, 246); }
.pp-go .pp-arrow { display: inline-block; transition: transform .2s var(--pp-ease); }
.pp-go:hover .pp-arrow { transform: translateX(4px); }
.pp-sparkle svg { transition: transform .4s var(--pp-ease); }
.pp-sparkle:hover svg { transform: rotate(18deg) scale(1.12); }
.pp-banner { background-size: 160% 160%; transition: background-position .8s ease; }
.pp-banner:hover { background-position: 100% 50%; }

/* Cards that are information (steps, wallet stats) lift on hover; form cards stay put. */
.pp-steps .pp-card, .pp-stat { transition: transform .22s var(--pp-ease), box-shadow .22s ease, border-color .22s ease; }
.pp-steps .pp-card:hover, .pp-stat:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(16, 24, 40, .08); border-color: #dfe3ea; }
.pp-num { transition: transform .22s var(--pp-ease); }
.pp-steps .pp-card:hover .pp-num { transform: scale(1.12); }
.pp-table tbody tr { transition: background-color .15s ease; }
.pp-table tbody tr:not(.pp-detail-row):hover { background: #fcfcfd; }
.pp-rates tbody tr:not(.pp-detail-row):hover { background: var(--pp-soft); }
input, select, textarea { transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
input:focus, select:focus, textarea:focus { box-shadow: 0 0 0 4px var(--pp-blue-50); }
.pp-block:focus { background: #fff; }

/* Details rows: height and fade, chevron turns. */
.pp-chev { display: inline-block; transition: transform .28s var(--pp-ease); }
.pp-details[aria-expanded="true"] .pp-chev { transform: rotate(180deg); }
.pp-collapse { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s var(--pp-ease); }
.pp-collapse > div { overflow: hidden; opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility 0s linear .28s; }
.pp-detail-row.open .pp-collapse { grid-template-rows: 1fr; }
.pp-detail-row.open .pp-collapse > div { opacity: 1; visibility: visible; transition: opacity .25s ease .05s, visibility 0s; }

/* Things that appear on demand slide in when shown. */
[data-pp-boost]:not([hidden]), [data-pp-preview]:not([hidden]), [data-pp-errors]:not([hidden]) { animation: pp-drop .3s var(--pp-ease) both; }
.pp-blocks > .pp-block:not(:first-child) { animation: pp-drop .3s var(--pp-ease) both; }
.pp-done { animation: pp-pop .35s var(--pp-ease) both; }
.pp-status.pp-in { animation: pp-fade .25s ease both; }
.pp-status.err.pp-nudge, .pp-errors.pp-nudge { animation: pp-shake .35s ease both; }
.pp-status-pill { transition: transform .2s var(--pp-ease); }
tr:hover .pp-status-pill { transform: scale(1.04); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
}

@media (max-width: 760px) {
  .pp-header-in { flex-wrap: wrap; gap: 10px; }
  .pp-divider { display: none; }
  .pp-nav { margin-left: 0; width: 100%; overflow-x: auto; }
  .pp-nav > a { padding: 7px 10px; }
  .pp-main { padding-top: 24px; }
  .pp-hero h1 { font-size: 32px; }
  .pp-hero p { font-size: 16px; }
  .pp-banner, .pp-premium-head, .pp-page-head { flex-direction: column; align-items: stretch; }
  .pp-banner h2 { font-size: 22px; }
  .pp-premium-head h1 { font-size: 30px; }
  .pp-steps, .pp-stats3 { grid-template-columns: 1fr; }
  .pp-card-head { flex-wrap: wrap; }
  .pp-toolbar .pp-btn { margin-left: 0; width: 100%; }
  .pp-row { flex-wrap: wrap; }
  .pp-signin form .pp-btn, .pp-money { width: 100%; }
}
