/* Partner page (/partner, .pt-*) and the admin payout page
   (/admin/payouts, .po-*). Tokens only (base.css); motion: transform and opacity. */

/* ---------- Partner page ---------- */
.pt { display: grid; gap: var(--space-4); max-width: 760px; margin-inline: auto; }
.pt-hero {
    position: relative;
    overflow: hidden;
    padding: 20px 18px 16px;
    border: 2px solid color-mix(in srgb, var(--primary) 50%, transparent);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(20rem 14rem at 100% 0%, color-mix(in srgb, var(--primary) 32%, transparent), transparent 70%),
        radial-gradient(16rem 12rem at 0% 100%, color-mix(in srgb, var(--amber) 16%, transparent), transparent 70%),
        var(--console);
    color: var(--on-console);
    box-shadow: var(--glow), 0 4px 0 var(--primary-edge);
}
.pt-hero-top { display: flex; align-items: center; gap: 12px; margin-bottom: var(--space-3); }
.pt-mascot { flex: none; }
.pt-who { min-width: 0; }
.pt-name { margin: 0; color: var(--on-console); font-size: var(--fs-xl); overflow-wrap: anywhere; }
.pt-code { margin: 4px 0 0; color: var(--on-console-muted); }
.pt-code-value {
    display: inline-block;
    padding: 2px 12px;
    border-radius: var(--radius-pill);
    background: var(--amber);
    color: var(--navy);
    box-shadow: 0 3px 0 var(--accent-edge);
    font-family: var(--font-title);
    font-size: var(--fs-md);
    letter-spacing: .08em;
    transform: rotate(-3deg);
}
.pt-pitch { color: var(--on-console-muted); }
.pt-hero .share-url { border-color: color-mix(in srgb, var(--on-console) 30%, transparent); background: color-mix(in srgb, var(--navy) 55%, black); color: var(--on-console); }
.pt-hero .alert { margin-bottom: var(--space-3); }

.pt-stats { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; }
@media (min-width: 640px) { .pt-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.pt-stat {
    display: grid;
    justify-items: center;
    gap: 2px;
    padding: 12px 6px;
    border: 2px solid var(--border);
    border-radius: 20px;
    background: var(--surface);
    box-shadow: 0 3px 0 var(--edge);
    text-align: center;
    animation: pt-pop .45s var(--ease-spring) backwards;
}
.pt-stat:nth-child(2) { animation-delay: .05s; }
.pt-stat:nth-child(3) { animation-delay: .1s; }
.pt-stat:nth-child(4) { animation-delay: .15s; }
.pt-stat:nth-child(5) { animation-delay: .2s; }
.pt-stat-num { font-size: var(--fs-2xl); line-height: 1.1; color: var(--text); }
.pt-stat-label { color: var(--text-muted); font-size: var(--fs-sm); }
.pt-stat.is-ready { border-color: var(--accent); background: var(--accent-soft); }
.pt-stat.is-ready .pt-stat-num { color: var(--accent-text); }
.pt-stat.is-paid { border-color: var(--success-edge); background: var(--success-soft); }
.pt-stat.is-paid .pt-stat-num { color: var(--success); }
@media (max-width: 639px) { .pt-stat:last-child:nth-child(odd) { grid-column: 1 / -1; } }

.pt-title { display: flex; align-items: center; gap: 10px; margin-bottom: var(--space-3); font-size: var(--fs-lg); }
.pt-title::before {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: var(--amber);
    box-shadow: 0 2px 0 var(--accent-edge);
    transform: rotate(45deg);
}
.pt-empty { display: flex; align-items: center; gap: 12px; }
.pt-empty p { margin: 0; }
.pt-sales { list-style: none; display: grid; gap: 8px; margin: 0; padding: 0; }
.pt-sale {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 12px;
    padding: 10px 14px;
    border: 2px solid var(--border);
    border-inline-start-width: 6px;
    border-radius: var(--radius);
    background: var(--surface);
}
.pt-sale.is-pending { border-inline-start-color: var(--primary); }
.pt-sale.is-payable { border-inline-start-color: var(--accent); }
.pt-sale.is-paid { border-inline-start-color: var(--success-edge); }
.pt-sale.is-cancelled { border-inline-start-color: var(--danger); opacity: .75; }
.pt-sale.is-cancelled .pt-sale-amount { text-decoration: line-through; }
.pt-sale-main { display: grid; min-width: 0; }
.pt-sale-plan { font-family: var(--font-title); font-size: var(--fs-md); }
.pt-sale-kind { font-size: var(--fs-sm); }
.pt-sale-side { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.pt-sale-amount { font-size: var(--fs-md); }
.pt-sale-side .hint { margin: 0; }
.pt-logout { margin: 0; text-align: center; }
.pt-logout .btn[type="submit"] { width: auto; color: var(--text-muted); }
.pt-secret { padding: 4px 12px; border-radius: 8px; background: var(--surface-3); font-size: 1.2rem; letter-spacing: .08em; }

@keyframes pt-pop { from { opacity: 0; transform: scale(.85); } }

/* ---------- Admin payouts ---------- */
.po-head { display: grid; justify-items: start; gap: 8px; }
.po-head > * { margin: 0; }
.po-total { font-size: var(--fs-lg); }
.po-total .num { font-size: var(--fs-2xl); }
.po-lines { list-style: none; display: grid; gap: 12px; margin: 0 0 var(--space-4); padding: 0; }
.po-line-top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px; }
.po-name { margin: 0; font-size: var(--fs-md); }
.po-meta { margin: 0; font-size: var(--fs-sm); }
.po-amount { margin: 0; font-family: var(--font-title); font-size: var(--fs-md); }
.po-amount .num { font-size: var(--fs-xl); color: var(--accent-text); }
.po-line .facts dd { overflow-wrap: anywhere; }
