/* Partners — design system alinhado ao Admin (premium dark/violeta)
 *
 * TOKENS SÃO OS MESMOS DO ADMIN (backoffice/public/css/admin.css).
 * O portal e o backoffice são o mesmo produto para o mesmo operador: divergir de
 * paleta faz o portal parecer um sistema de terceiro. O visual âmbar anterior
 * foi substituído por completo.
 *
 * BRANDING DINÂMICO: `--partners-brand` é injetada pelo layout a partir de
 * SiteRuntimeConfigService (cor primária do site). Ela pinta APENAS marca/logo,
 * nunca a estrutura — assim um whitelabel troca a marca sem quebrar contraste
 * nem hierarquia.
 */
:root {
    color-scheme: dark;
    --partners-bg: #07091a;
    --partners-bg-soft: #090c20;
    --partners-sidebar-bg: #080a1c;
    --partners-panel: #0e112a;
    --partners-panel-strong: #131730;
    --partners-panel-hover: #191d3a;
    --partners-card: linear-gradient(155deg, rgba(19, 23, 48, .96), rgba(10, 13, 31, .97));
    --partners-line: rgba(158, 166, 205, .12);
    --partners-line-strong: rgba(167, 139, 250, .24);
    --partners-text: #f5f4fb;
    --partners-muted: #c6c9dc;
    --partners-subtle: #a1a8c0;
    --partners-accent: #7c3aed;
    --partners-violet: #a78bfa;
    --partners-gold: #f4bd4a;
    --partners-success: #34d399;
    --partners-danger: #fb7185;
    --partners-blue: #38bdf8;
    --partners-on-accent: #f5f4fb;
    --partners-brand: var(--partners-violet);
    --partners-radius: 1rem;
    --partners-radius-sm: .55rem;
    --partners-radius-md: .8rem;
    --partners-shadow: 0 14px 38px rgba(0, 0, 0, .26);
    --partners-shadow-lg: 0 28px 80px rgba(0, 0, 0, .48);
    --partners-sidebar: 272px;
    font-family: "Avenir Next", "Segoe UI Variable", "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--partners-bg); }
body { margin: 0; min-height: 100vh; background: var(--partners-bg); color: var(--partners-text); }
::selection { background: var(--partners-accent); color: var(--partners-on-accent); }
* { scrollbar-width: thin; scrollbar-color: rgba(167,139,250,.3) transparent; }
*::-webkit-scrollbar { width: 6px; height: 6px; }
*::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(167,139,250,.26); }
a { color: inherit; }
.partners-skip-link { position: fixed; top: .65rem; left: .65rem; z-index: 100; transform: translateY(-160%); padding: .65rem .85rem; border-radius: var(--partners-radius-sm); background: var(--partners-accent); color: var(--partners-on-accent); font-weight: 800; text-decoration: none; }
.partners-skip-link:focus { transform: translateY(0); }
button, input, select, textarea { font: inherit; }
button, a, input, select, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--partners-violet); outline-offset: 3px; }
.partners-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.partners-wordmark { display: inline-flex; min-width: 0; align-items: center; gap: .7rem; text-decoration: none; font-size: 1.02rem; font-weight: 800; letter-spacing: -.02em; white-space: nowrap; }
.partners-wordmark__mark { display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--partners-brand); }
.partners-wordmark__mark svg { width: 100%; height: 100%; }
.partners-wordmark img { display: block; width: 170px; height: 42px; max-width: 100%; object-fit: contain; object-position: left center; filter: drop-shadow(0 4px 14px rgba(124,58,237,.2)); }
.partners-wordmark > span:last-child { overflow: hidden; text-overflow: ellipsis; }
.partners-wordmark em { color: var(--partners-brand); font-style: normal; }

.partners-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: .55rem; padding: .7rem 1rem; border: 1px solid transparent; border-radius: var(--partners-radius-md); background: linear-gradient(135deg, var(--partners-accent), #6d28d9); color: var(--partners-on-accent); text-decoration: none; font-weight: 700; cursor: pointer; box-shadow: 0 10px 26px rgba(76,29,149,.28); transition: transform 180ms cubic-bezier(.2,.8,.2,1), filter 180ms ease, background-color 180ms ease; }
.partners-button:hover { transform: translateY(-1px); filter: brightness(1.08); }
.partners-button:active { transform: translateY(0); }
.partners-button--secondary { border-color: var(--partners-line-strong); background: rgba(167,139,250,.07); color: var(--partners-text); box-shadow: none; }
.partners-button--secondary:hover { background: var(--partners-panel-hover); }
.partners-button--ghost { border-color: var(--partners-line); background: transparent; color: var(--partners-muted); box-shadow: none; }
.partners-button--sm { min-height: 36px; padding: .4rem .7rem; font-size: .82rem; }
.partners-button[disabled], .partners-button[aria-disabled="true"] { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }

/* ---------------------------------------------------------- Public shell */
.partners-public { background: radial-gradient(56rem 30rem at 18% -8%, rgba(124,58,237,.13), transparent 58%), radial-gradient(42rem 26rem at 88% 4%, rgba(56,189,248,.04), transparent 64%), linear-gradient(180deg, var(--partners-bg-soft), var(--partners-bg)); }
.partners-public__header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--partners-line); background: rgba(8,10,28,.9); backdrop-filter: blur(14px); }
.partners-public__nav { display: flex; width: min(1180px, calc(100% - 2rem)); min-height: 72px; margin: auto; align-items: center; justify-content: space-between; gap: 1rem; }
.partners-public__actions { display: flex; align-items: center; gap: .65rem; }
.partners-program-label { margin-left: auto; color: var(--partners-subtle); font-size: .75rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.partners-public__main { overflow: clip; }
.partners-public__footer { border-top: 1px solid var(--partners-line); padding: 3.5rem 1rem; text-align: center; color: var(--partners-subtle); }
.partners-public__footer .partners-wordmark { margin-bottom: 1rem; color: var(--partners-text); }

.partners-landing-hero { display: grid; width: min(1180px, calc(100% - 2rem)); min-height: 650px; margin: auto; padding: clamp(5rem, 9vw, 8rem) 0; grid-template-columns: minmax(0, 1.03fr) minmax(390px, .97fr); align-items: center; gap: clamp(2rem, 7vw, 6rem); }
.partners-landing-hero h1 { max-width: 760px; margin: 0; font-size: clamp(3rem, 6vw, 5.8rem); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.partners-landing-hero__copy { max-width: 650px; margin: 1.8rem 0 0; color: var(--partners-muted); font-size: clamp(1.05rem, 2vw, 1.22rem); line-height: 1.7; }
.partners-landing-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.partners-landing-proof { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 2.5rem; }
.partners-landing-proof div { min-height: 96px; padding: 1rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-md); background: var(--partners-card); }
.partners-landing-proof span { display: block; margin-bottom: .45rem; color: var(--partners-violet); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.partners-landing-proof strong { display: block; line-height: 1.35; }

.partners-preview { position: relative; min-height: 510px; display: grid; place-items: center; }
.partners-preview::before, .partners-preview::after { content: ""; position: absolute; border: 1px solid rgba(167,139,250,.22); border-radius: 50%; }
.partners-preview::before { width: 450px; height: 450px; }
.partners-preview::after { width: 320px; height: 320px; }
.partners-phone { position: relative; z-index: 1; width: 270px; min-height: 510px; border: 8px solid #171a35; border-radius: 42px; background: var(--partners-bg); box-shadow: var(--partners-shadow-lg); overflow: hidden; }
.partners-phone__top { width: 38%; height: 22px; margin: 0 auto 1.35rem; border-radius: 0 0 14px 14px; background: #171a35; }
.partners-phone__screen { padding: 0 1rem 1.2rem; }
.partners-phone__screen h2 { margin: 0 0 .35rem; font-size: 1.2rem; letter-spacing: -.02em; }
.partners-phone__screen > p { margin: 0 0 1.2rem; color: var(--partners-muted); font-size: .82rem; }
.partners-phone__metric { margin-top: .75rem; padding: .85rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-md); background: var(--partners-panel-strong); }
.partners-phone__metric span { display: block; color: var(--partners-subtle); font-size: .72rem; }
.partners-phone__metric strong { display: block; margin-top: .35rem; font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.partners-phone__metric i { display: block; height: 3px; margin-top: .75rem; border-radius: 2px; background: var(--partners-violet); opacity: .78; }

.partners-section { padding: clamp(5rem, 9vw, 8rem) 0; border-top: 1px solid var(--partners-line); background: linear-gradient(180deg, var(--partners-bg-soft) 0%, var(--partners-bg) 100%); }
.partners-section__inner { width: min(1180px, calc(100% - 2rem)); margin: auto; }
.partners-section__heading { display: grid; grid-template-columns: minmax(0,.85fr) minmax(280px,1.15fr); gap: 3rem; align-items: end; margin-bottom: 3rem; }
.partners-section__heading h2 { max-width: 580px; margin: 0; font-size: clamp(2.5rem, 5vw, 4.8rem); line-height: 1; letter-spacing: -.04em; text-wrap: balance; }
.partners-section__heading p { max-width: 650px; margin: 0 0 .4rem; color: var(--partners-muted); font-size: 1.05rem; line-height: 1.65; }
.partners-journey { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.partners-journey article { min-height: 230px; padding: 1.5rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius); background: var(--partners-card); box-shadow: var(--partners-shadow); }
.partners-journey svg { width: 26px; height: 26px; color: var(--partners-violet); }
.partners-journey h3 { margin: 2rem 0 .7rem; font-size: 1.12rem; }
.partners-journey p { margin: 0; color: var(--partners-muted); line-height: 1.6; }
.partners-faq { display: grid; gap: .65rem; }
.partners-faq details { border: 1px solid var(--partners-line); border-radius: var(--partners-radius-md); background: var(--partners-panel); }
.partners-faq summary { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; cursor: pointer; font-weight: 700; list-style: none; }
.partners-faq summary::-webkit-details-marker { display: none; }
.partners-faq summary::after { content: "+"; color: var(--partners-violet); font-size: 1.2rem; }
.partners-faq details[open] summary::after { content: "−"; }
.partners-faq p { max-width: 75ch; margin: 0; padding: 0 1.2rem 1.2rem; color: var(--partners-muted); line-height: 1.65; }

.partners-auth { display: grid; min-height: 100vh; place-items: center; padding: 2rem 1rem; background: radial-gradient(56rem 30rem at 16% -6%, rgba(124,58,237,.15), transparent 60%), linear-gradient(180deg, var(--partners-bg-soft), var(--partners-bg)); }
.partners-auth__card { width: min(100%, 520px); padding: clamp(1.5rem, 4vw, 2.7rem); border: 1px solid var(--partners-line); border-radius: var(--partners-radius); background: var(--partners-card); box-shadow: var(--partners-shadow-lg); }
.partners-auth__card .partners-wordmark { margin-bottom: 2rem; }
.partners-auth__card h1 { margin: 0; font-size: 2rem; letter-spacing: -.035em; }
.partners-auth__card > p { margin: .85rem 0 1.8rem; color: var(--partners-muted); line-height: 1.6; }
.partners-form { display: grid; gap: 1.1rem; }
.partners-field { display: grid; gap: .5rem; font-weight: 700; font-size: .9rem; }
.partners-field input, .partners-field select, .partners-field textarea { width: 100%; min-height: 46px; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-md); padding: 0 .85rem; background: #0b0e22; color: var(--partners-text); font-weight: 600; }
.partners-field select { padding-right: 2rem; }
.partners-field input::placeholder { color: #7b81a0; }
.partners-field small { color: var(--partners-subtle); font-weight: 600; }
.partners-check { display: flex; align-items: center; gap: .6rem; color: var(--partners-muted); }
.partners-check input { width: 18px; height: 18px; accent-color: var(--partners-accent); }
.partners-form .partners-button { width: 100%; }
.partners-alert { margin: 1rem 0; padding: .85rem 1rem; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-md); background: rgba(124,58,237,.12); color: var(--partners-text); }
.partners-alert--warning { border-color: rgba(244,189,74,.3); background: rgba(244,189,74,.1); }
.partners-alert--danger { border-color: rgba(251,113,133,.3); background: rgba(251,113,133,.1); }
.partners-alert--success { border-color: rgba(52,211,153,.3); background: rgba(52,211,153,.1); }
.partners-error { margin: 0; color: var(--partners-danger); font-size: .88rem; font-weight: 600; }
.partners-auth__back { display: inline-block; margin-top: 1.25rem; color: var(--partners-muted); text-underline-offset: 4px; }

/* --------------------------------------------------- Authenticated portal */
.partners-app { min-height: 100vh; background: radial-gradient(56rem 30rem at 18% -8%, rgba(124,58,237,.11), transparent 58%), linear-gradient(180deg, var(--partners-bg-soft), var(--partners-bg)); }
.partners-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; width: var(--partners-sidebar); flex-direction: column; overflow-y: auto; border-right: 1px solid var(--partners-line); background: linear-gradient(180deg, rgba(10,12,32,.99), rgba(7,9,26,.99)); box-shadow: 12px 0 34px rgba(0,0,0,.16); }
.partners-sidebar__brand { display: flex; min-height: 64px; align-items: center; padding: 0 1.15rem; border-bottom: 1px solid var(--partners-line); background: rgba(8,10,28,.92); }
.partners-sidebar .partners-wordmark { gap: .45rem; font-size: .82rem; }
.partners-sidebar .partners-wordmark__mark { width: 1.7rem; height: 1.7rem; }
.partners-sidebar .partners-wordmark img { width: 150px; height: 34px; }
.partners-sidebar .partners-wordmark > span:last-child { overflow: visible; text-overflow: clip; }
.partners-identity { display: grid; gap: .6rem; margin: .9rem .9rem .55rem; padding: .85rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-md); background: var(--partners-card); }
.partners-identity__head { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: .7rem; align-items: center; }
.partners-identity__who { min-width: 0; }
.partners-identity__who strong, .partners-identity__who span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.partners-identity__who strong { font-size: .9rem; letter-spacing: -.01em; }
.partners-identity__who span { margin-top: .12rem; color: var(--partners-subtle); font-size: .74rem; font-weight: 600; }
.partners-identity__market { display: inline-flex; align-items: center; gap: .4rem; margin: 0; color: var(--partners-muted); font-size: .76rem; font-weight: 700; }
.partners-identity__market svg { width: 14px; height: 14px; flex: none; color: var(--partners-violet); }
.partners-avatar { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: linear-gradient(140deg, rgba(124,58,237,.45), rgba(56,189,248,.22)); color: #fff; font-weight: 900; }
.partners-sidebar__meta { display: grid; gap: .5rem; margin: 0 .9rem .7rem; }
.partners-sidebar__meta:empty { display: none; margin: 0; }
.partners-chips { display: flex; flex-wrap: wrap; gap: .3rem; }
.partners-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .22rem .5rem; border: 1px solid var(--partners-line-strong); border-radius: 999px; background: rgba(167,139,250,.08); color: var(--partners-muted); font-size: .68rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.partners-chip--gold { border-color: rgba(244,189,74,.32); background: rgba(244,189,74,.1); color: var(--partners-gold); }
.partners-chip--green { border-color: rgba(52,211,153,.32); background: rgba(52,211,153,.1); color: var(--partners-success); }
.partners-chip--blue { border-color: rgba(56,189,248,.32); background: rgba(56,189,248,.1); color: var(--partners-blue); }
.partners-chip--danger { border-color: rgba(251,113,133,.32); background: rgba(251,113,133,.1); color: var(--partners-danger); }
.partners-balance { padding: .8rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-md); background: linear-gradient(150deg, rgba(124,58,237,.18), rgba(10,13,31,.9)); }
.partners-balance span { display: block; color: var(--partners-subtle); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.partners-balance strong { display: block; margin-top: .3rem; font-size: 1.25rem; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.partners-balance small { display: block; margin-top: .2rem; color: var(--partners-subtle); font-size: .72rem; }

/* Link de indicação: a URL NUNCA vaza da sidebar. O host fica legível, o
 * caminho é truncado por ellipsis, a URL completa vai no title (tooltip) e o
 * input real é visually-hidden apenas para o fallback de cópia. */
.partners-referral { margin: 0 .9rem .8rem; }
.partners-referral__label { display: block; margin-bottom: .35rem; color: var(--partners-subtle); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.partners-referral__box { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .45rem; min-height: 40px; padding: .3rem .35rem .3rem .55rem; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-md); background: #0b0e22; }
.partners-referral__icon { display: grid; place-items: center; color: var(--partners-violet); }
.partners-referral__icon svg { width: 15px; height: 15px; }
.partners-referral__url { display: block; min-width: 0; overflow: hidden; color: var(--partners-text); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; cursor: help; }
.partners-referral__url strong { font-weight: 700; }
.partners-referral__url em { color: var(--partners-subtle); font-style: normal; }
.partners-referral__copy { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-sm); background: rgba(167,139,250,.08); color: var(--partners-muted); cursor: pointer; transition: color 150ms ease, background-color 150ms ease; }
.partners-referral__copy:hover { background: var(--partners-panel-hover); color: var(--partners-text); }
.partners-referral__copy svg { width: 14px; height: 14px; }
.partners-referral__copy.is-copied { border-color: rgba(52,211,153,.45); background: rgba(52,211,153,.16); color: var(--partners-success); }
.partners-copy-status:empty { min-height: 0; margin: 0; }
.partners-nav { display: grid; gap: .3rem; padding: .3rem .8rem 1rem; }
.partners-nav a { display: flex; min-height: 44px; align-items: center; gap: .75rem; padding: .6rem .75rem; border: 1px solid transparent; border-radius: var(--partners-radius-md); color: var(--partners-muted); text-decoration: none; font-weight: 700; font-size: .92rem; }
.partners-nav a:hover { background: var(--partners-panel-hover); color: var(--partners-text); }
.partners-nav a[aria-current="page"] { border-color: var(--partners-line-strong); background: linear-gradient(135deg, rgba(124,58,237,.24), rgba(124,58,237,.06)); color: var(--partners-text); }
.partners-nav a[aria-current="page"] svg { color: var(--partners-violet); }
.partners-nav svg { width: 19px; height: 19px; flex: none; }
.partners-sidebar__footer { margin-top: auto; padding: .9rem; border-top: 1px solid var(--partners-line); }
.partners-sidebar__footer button { width: 100%; }

.partners-mobile-bar { display: none; position: sticky; top: 0; z-index: 25; min-height: 62px; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; border-bottom: 1px solid var(--partners-line); background: rgba(8,10,28,.96); backdrop-filter: blur(12px); }
.partners-mobile-toggle { border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-sm); background: var(--partners-panel); color: var(--partners-text); width: 42px; height: 42px; cursor: pointer; }
.partners-sidebar-backdrop { display: none; }
.partners-menu-open { overflow: hidden; }
.partners-shell { min-height: 100vh; margin-left: var(--partners-sidebar); }

.partners-topbar { position: sticky; top: 0; z-index: 22; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 62px; padding: .65rem clamp(.75rem, 2vw, 1.5rem); border-bottom: 1px solid var(--partners-line); background: rgba(8,10,28,.86); backdrop-filter: blur(14px); }
.partners-topbar__title { min-width: 0; }
.partners-topbar__title strong { display: block; font-size: .95rem; letter-spacing: -.01em; }
.partners-topbar__title span { display: block; color: var(--partners-subtle); font-size: .74rem; }
.partners-topbar__actions { display: flex; align-items: center; gap: .5rem; }
.partners-dropdown { position: relative; }
.partners-dropdown > summary { display: inline-flex; min-height: 40px; align-items: center; gap: .45rem; padding: .35rem .7rem; border: 1px solid var(--partners-line-strong); border-radius: 999px; background: rgba(167,139,250,.07); color: var(--partners-text); font-size: .84rem; font-weight: 700; cursor: pointer; list-style: none; }
.partners-dropdown > summary::-webkit-details-marker { display: none; }
.partners-dropdown > summary::after { content: "▾"; color: var(--partners-violet); }
.partners-dropdown__menu { position: absolute; top: calc(100% + .4rem); right: 0; z-index: 40; display: grid; gap: .15rem; min-width: 230px; padding: .45rem; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-md); background: var(--partners-panel-strong); box-shadow: var(--partners-shadow-lg); }
.partners-dropdown__menu a, .partners-dropdown__menu button { display: flex; align-items: center; justify-content: space-between; gap: .6rem; min-height: 38px; padding: .4rem .6rem; border: 0; border-radius: var(--partners-radius-sm); background: transparent; color: var(--partners-muted); font-size: .85rem; font-weight: 700; text-align: left; text-decoration: none; cursor: pointer; }
.partners-dropdown__menu a:hover, .partners-dropdown__menu button:hover { background: var(--partners-panel-hover); color: var(--partners-text); }
.partners-dropdown__menu a[aria-current="true"] { background: rgba(124,58,237,.2); color: var(--partners-text); }
.partners-dropdown__menu small { color: var(--partners-subtle); font-weight: 700; }

.partners-content { width: min(1360px, calc(100% - 3rem)); margin: auto; padding: 1.6rem 0 4rem; }
.partners-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.partners-page-head h1 { margin: 0; font-size: clamp(1.6rem, 3.4vw, 2.2rem); letter-spacing: -.03em; }
.partners-page-head p { max-width: 68ch; margin: .45rem 0 0; color: var(--partners-muted); font-size: .92rem; line-height: 1.55; }
.partners-market { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .7rem; border: 1px solid var(--partners-line); border-radius: 999px; background: rgba(167,139,250,.06); color: var(--partners-muted); font-size: .8rem; font-weight: 800; }

/* -------------------------------------------------------------- FilterBar
 * Um único padrão para todas as páginas de relatório. Espelha a barra de
 * filtros do Admin: card com borda/sombra do design system, atalhos em chips e
 * campos com LARGURA DEFINIDA — data não estica, busca é o único campo
 * elástico, e "por página" fica na zona de ações (é controle de exibição, não
 * filtro de dado).
 */
.partners-filterbar { display: grid; gap: .75rem; margin-bottom: 1.1rem; padding: .9rem 1.05rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius); background: var(--partners-card); box-shadow: var(--partners-shadow); }
/* Sem isto, o `min-width: auto` de item de grid/flex faz o trilho de chips
 * (que não quebra linha no mobile) ditar a largura mínima do card e estourar a
 * viewport. O trilho rola dentro de si mesmo; o card nunca cresce. */
.partners-filterbar > *,
.partners-filterbar__quick,
.partners-filterbar__quick > *,
.partners-filterbar__form,
.partners-filterbar__form > *,
.partners-filterbar__fields,
.partners-filterbar__fields > *,
.partners-chipgroup,
.partners-daterange,
.partners-daterange > * { min-width: 0; }
.partners-filterbar__legend { display: block; color: var(--partners-subtle); font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.partners-filterbar__quick { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }
.partners-filterbar__quick > .partners-filterbar__legend { flex: none; }
.partners-chipgroup { display: flex; flex-wrap: wrap; gap: .3rem; padding: .22rem; border: 1px solid var(--partners-line); border-radius: 999px; background: rgba(255,255,255,.02); }
.partners-chip-btn { display: inline-flex; min-height: 30px; align-items: center; padding: .25rem .7rem; border-radius: 999px; color: var(--partners-muted); font-size: .78rem; font-weight: 700; line-height: 1; text-decoration: none; white-space: nowrap; transition: color 150ms ease, background-color 150ms ease; }
.partners-chip-btn:hover { background: var(--partners-panel-hover); color: var(--partners-text); }
.partners-chip-btn[aria-current="true"] { background: linear-gradient(135deg, var(--partners-accent), #6d28d9); color: #fff; box-shadow: 0 6px 16px rgba(76,29,149,.3); }
.partners-filterbar__window { display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 0 auto; padding: .3rem .6rem; border: 1px solid var(--partners-line); border-radius: 999px; background: rgba(167,139,250,.06); color: var(--partners-muted); font-size: .76rem; font-weight: 700; white-space: nowrap; }
.partners-filterbar__window svg { width: 14px; height: 14px; flex: none; color: var(--partners-violet); }
.partners-filterbar__window small { color: var(--partners-subtle); font-size: .68rem; font-weight: 700; }

.partners-filterbar__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; padding-top: .75rem; border-top: 1px solid var(--partners-line); }
.partners-filterbar__fields { display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: flex-end; gap: .75rem; min-width: 0; }
.partners-filterbar__group { display: grid; gap: .3rem; min-width: 0; }
.partners-filterbar__group--dates { flex: 0 0 auto; }
.partners-filterbar__group--search { flex: 1 1 220px; max-width: 380px; }
.partners-filterbar__group--status { flex: 0 0 11rem; }

.partners-inputwrap { display: grid; min-width: 0; }
.partners-inputwrap input, .partners-inputwrap select { width: 100%; min-width: 0; height: 38px; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-sm); padding: 0 .6rem; background: #0b0e22; color: var(--partners-text); font-size: .84rem; font-weight: 600; }
.partners-inputwrap select { padding-right: 1.6rem; cursor: pointer; }
.partners-inputwrap input[type="date"] { width: 9.5rem; font-variant-numeric: tabular-nums; }
.partners-inputwrap input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1) opacity(.55); cursor: pointer; }
.partners-daterange { display: flex; align-items: center; gap: .4rem; }
.partners-daterange__sep { color: var(--partners-subtle); font-size: .8rem; }

.partners-search { position: relative; display: flex; align-items: center; min-width: 0; }
.partners-search > svg { position: absolute; left: .6rem; width: 15px; height: 15px; pointer-events: none; color: var(--partners-subtle); }
.partners-search input { width: 100%; min-width: 0; height: 38px; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-sm); padding: 0 2.1rem 0 2rem; background: #0b0e22; color: var(--partners-text); font-size: .84rem; font-weight: 600; }
.partners-search input::-webkit-search-cancel-button { display: none; }
.partners-search input::placeholder { color: #7b81a0; font-weight: 600; }
.partners-search__clear { position: absolute; right: .3rem; display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; color: var(--partners-subtle); }
.partners-search__clear:hover { background: var(--partners-panel-hover); color: var(--partners-text); }
.partners-search__clear svg { width: 13px; height: 13px; }

.partners-filterbar__actions { display: flex; flex: none; align-items: center; gap: .5rem; margin-left: auto; }
.partners-perpage { display: inline-flex; align-items: center; gap: .4rem; padding: 0 .3rem 0 .6rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-sm); background: rgba(255,255,255,.02); }
.partners-perpage > span { color: var(--partners-subtle); font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.partners-perpage select { height: 36px; width: 4.1rem; border: 0; border-radius: var(--partners-radius-sm); padding: 0 .2rem; background: transparent; color: var(--partners-text); font-size: .82rem; font-weight: 700; cursor: pointer; }
.partners-filterbar__actions .partners-button svg { width: 14px; height: 14px; }
.partners-filterbar__actions .is-muted { opacity: .55; }
.partners-filterbar__notice { display: flex; align-items: flex-start; gap: .5rem; margin: 0; color: var(--partners-gold); font-size: .8rem; font-weight: 600; line-height: 1.45; }
.partners-filterbar__notice svg { width: 15px; height: 15px; flex: none; margin-top: .1rem; }

/* KPIs */
.partners-kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .8rem; margin: 0 0 1rem; }
.partners-kpis--twelve { grid-template-columns: repeat(4, minmax(0,1fr)); }
.partners-kpi { position: relative; padding: 1rem 1.05rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius); background: var(--partners-card); box-shadow: var(--partners-shadow); }
.partners-kpi > span { display: flex; align-items: center; gap: .35rem; color: var(--partners-subtle); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.partners-kpi strong { display: block; margin-top: .5rem; font-size: clamp(1.25rem, 2.4vw, 1.7rem); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.partners-kpi small { display: block; margin-top: .3rem; color: var(--partners-subtle); font-size: .76rem; line-height: 1.4; }
.partners-kpi__extra { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-top: .5rem; }
.partners-kpi__extra span { color: var(--partners-muted); font-size: .78rem; font-weight: 700; }
.partners-hint { display: inline-grid; place-items: center; width: 15px; height: 15px; border: 1px solid var(--partners-line-strong); border-radius: 50%; color: var(--partners-violet); font-size: .62rem; font-weight: 900; cursor: help; }

/* Painéis
 * `align-items: start` evita que um painel curto (extrato vazio) seja esticado
 * pela altura do vizinho — card gigante com um empty state no meio era o
 * sintoma mais visível de desalinhamento. */
.partners-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); align-items: start; gap: .8rem; }
.partners-grid--charts { grid-template-columns: repeat(3, minmax(0,1fr)); }
.partners-grid--halves { grid-template-columns: repeat(2, minmax(0,1fr)); }
.partners-panel { border: 1px solid var(--partners-line); border-radius: var(--partners-radius); background: var(--partners-card); box-shadow: var(--partners-shadow); overflow: hidden; }
.partners-panel + .partners-panel, .partners-grid + .partners-panel, .partners-panel + .partners-grid, .partners-grid + .partners-grid { margin-top: .8rem; }
.partners-panel__head { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1.05rem; border-bottom: 1px solid var(--partners-line); }
.partners-panel__head h2 { margin: 0; font-size: .95rem; }
.partners-panel__head small { color: var(--partners-subtle); font-size: .76rem; font-weight: 700; }
.partners-panel__head > div { display: flex; align-items: center; gap: .6rem; }
.partners-panel__body { padding: 1.05rem; }

/* Gráficos SVG (server-rendered, sem dependência externa) */
.partners-chart-legend { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: .6rem; color: var(--partners-muted); font-size: .74rem; font-weight: 700; }
.partners-chart-legend span::before { content: ""; display: inline-block; width: .6rem; height: .6rem; margin-right: .35rem; border-radius: 2px; vertical-align: -.03rem; background: currentColor; }
.partners-chart-svg { display: block; width: 100%; height: auto; overflow: visible; }
.partners-chart-svg .partners-chart-grid { stroke: rgba(158,166,205,.14); stroke-width: 1; }
.partners-chart-svg .partners-chart-axis { fill: var(--partners-subtle); font-size: 9px; font-weight: 700; }
.partners-chart-svg rect.partners-chart-bar { rx: 2; }
.partners-chart-svg g:hover rect.partners-chart-bar { opacity: 1; }
.partners-chart-data { margin-top: .7rem; }
.partners-chart-data summary { color: var(--partners-subtle); font-size: .78rem; font-weight: 700; cursor: pointer; }
.partners-chart-data table { margin-top: .6rem; }
.partners-chart-note { margin: .6rem 0 0; color: var(--partners-subtle); font-size: .76rem; }

/* Tabelas */
.partners-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.partners-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.partners-table th, .partners-table td { padding: .75rem .9rem; border-bottom: 1px solid var(--partners-line); text-align: left; vertical-align: middle; white-space: nowrap; }
.partners-table th { color: var(--partners-subtle); font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; }
.partners-table td { color: var(--partners-muted); font-size: .86rem; }
.partners-table tbody tr:last-child td { border-bottom: 0; }
.partners-table tbody tr:hover { background: rgba(167,139,250,.05); }
.partners-money { font-variant-numeric: tabular-nums; font-weight: 800; color: var(--partners-text); }
.partners-badge { display: inline-flex; align-items: center; min-height: 24px; padding: .2rem .5rem; border: 1px solid var(--partners-line); border-radius: 999px; background: rgba(255,255,255,.03); color: var(--partners-muted); font-size: .7rem; font-weight: 800; text-transform: capitalize; }
.partners-badge--success { border-color: rgba(52,211,153,.3); background: rgba(52,211,153,.12); color: var(--partners-success); }
.partners-badge--warning { border-color: rgba(244,189,74,.3); background: rgba(244,189,74,.12); color: var(--partners-gold); }
.partners-badge--danger { border-color: rgba(251,113,133,.3); background: rgba(251,113,133,.12); color: var(--partners-danger); }
.partners-badge--info { border-color: rgba(56,189,248,.3); background: rgba(56,189,248,.12); color: var(--partners-blue); }
.partners-list { display: grid; gap: .7rem; }
.partners-list__item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--partners-line); }
.partners-list__item:last-child { border-bottom: 0; }
.partners-list__item p { margin: 0; font-size: .9rem; }
.partners-list__item small { display: block; margin-top: .2rem; color: var(--partners-subtle); font-size: .76rem; }
.partners-empty { display: grid; min-height: 180px; place-items: center; padding: 2rem; text-align: center; color: var(--partners-muted); }
.partners-empty strong { display: block; margin-bottom: .4rem; color: var(--partners-text); }

/* Paginação */
.partners-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; padding: .8rem 1.05rem; border-top: 1px solid var(--partners-line); }
.partners-pagination__info { color: var(--partners-subtle); font-size: .78rem; font-weight: 700; }
.partners-pagination__links { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.partners-pagination__links a, .partners-pagination__links span { display: inline-flex; min-width: 34px; min-height: 34px; align-items: center; justify-content: center; padding: 0 .5rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-sm); color: var(--partners-muted); font-size: .8rem; font-weight: 700; text-decoration: none; }
.partners-pagination__links a:hover { border-color: var(--partners-line-strong); color: var(--partners-text); }
.partners-pagination__links [aria-current="page"] { border-color: transparent; background: linear-gradient(135deg, var(--partners-accent), #6d28d9); color: #fff; }
.partners-pagination__links .is-disabled { opacity: .4; }

/* Conta / definições */
.partners-account-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
.partners-definition { display: grid; grid-template-columns: minmax(140px,.45fr) minmax(0,1fr); gap: .75rem; margin: 0; padding: .7rem 0; border-bottom: 1px solid var(--partners-line); }
.partners-definition:last-child { border-bottom: 0; }
.partners-definition dt { color: var(--partners-subtle); font-size: .82rem; }
.partners-definition dd { margin: 0; color: var(--partners-text); font-size: .88rem; font-weight: 700; overflow-wrap: anywhere; }
.partners-readonly-note { display: flex; gap: .7rem; align-items: flex-start; margin: 0 0 .9rem; padding: .9rem 1rem; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-md); background: rgba(124,58,237,.1); color: var(--partners-muted); font-size: .86rem; line-height: 1.55; }
.partners-readonly-note svg { width: 20px; height: 20px; flex: none; color: var(--partners-violet); }
.partners-copy { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .4rem; }
.partners-copy input { min-width: 0; height: 40px; border: 1px solid var(--partners-line-strong); border-radius: var(--partners-radius-sm); padding: 0 .7rem; background: #0b0e22; color: var(--partners-text); font-size: .8rem; }
.partners-copy button { min-width: 80px; }
.partners-copy button.is-copied { border-color: rgba(52,211,153,.45); background: rgba(52,211,153,.16); color: var(--partners-success); }
.partners-copy-status { min-height: 1.1rem; margin: .45rem 0 0; color: var(--partners-subtle); font-size: .76rem; }

.partners-dashboard-hero { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: .8rem; margin-bottom: .9rem; }
.partners-welcome, .partners-link-panel { min-height: 160px; padding: clamp(1.1rem, 2.6vw, 1.6rem); border: 1px solid var(--partners-line); border-radius: var(--partners-radius); background: var(--partners-card); box-shadow: var(--partners-shadow); }
.partners-welcome { position: relative; overflow: hidden; }
.partners-welcome::after { content: ""; position: absolute; right: -110px; bottom: -180px; width: 360px; height: 360px; border: 1px solid rgba(167,139,250,.22); border-radius: 50%; }
.partners-welcome h1 { position: relative; z-index: 1; margin: 0; font-size: clamp(1.6rem, 3.6vw, 2.4rem); letter-spacing: -.035em; }
.partners-welcome h1 span { color: var(--partners-violet); }
.partners-welcome p { position: relative; z-index: 1; max-width: 60ch; margin: .7rem 0 0; color: var(--partners-muted); font-size: .9rem; line-height: 1.6; }
.partners-link-panel h2 { margin: 0 0 .4rem; font-size: .95rem; }
.partners-link-panel p { margin: 0 0 .8rem; color: var(--partners-muted); font-size: .85rem; }

@media (max-width: 1180px) {
    .partners-kpis, .partners-kpis--twelve { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .partners-grid--charts { grid-template-columns: 1fr; }
    .partners-filterbar__window { margin-left: 0; }
    .partners-filterbar__actions { margin-left: 0; }
}

@media (max-width: 980px) {
    .partners-landing-hero { grid-template-columns: 1fr; padding-top: 4.5rem; }
    .partners-preview { min-height: 540px; }
    .partners-section__heading { grid-template-columns: 1fr; gap: 1.25rem; }
    .partners-journey { grid-template-columns: 1fr; }
    .partners-sidebar { transform: translateX(-100%); transition: transform 210ms cubic-bezier(.2,.8,.2,1); box-shadow: 16px 0 40px rgba(0,0,0,.35); }
    .partners-sidebar[data-open="true"] { transform: translateX(0); }
    .partners-sidebar-backdrop:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 29; border: 0; background: rgba(3,5,9,.72); cursor: pointer; }
    .partners-mobile-bar { display: flex; }
    .partners-shell { margin-left: 0; }
    .partners-topbar { top: 62px; }
    .partners-dashboard-hero, .partners-grid, .partners-grid--halves { grid-template-columns: 1fr; }
    .partners-kpis, .partners-kpis--twelve { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .partners-account-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .partners-public__nav { width: min(100% - 1.25rem, 1180px); }
    .partners-program-label { display: none; }
    .partners-public__actions .partners-button--secondary { display: none; }
    .partners-public__actions .partners-button { min-height: 40px; padding: .6rem .65rem; font-size: .78rem; white-space: nowrap; }
    .partners-public__nav .partners-wordmark { gap: .4rem; font-size: .78rem; white-space: nowrap; }
    .partners-public__nav .partners-wordmark__mark { width: 1.6rem; height: 1.6rem; }
    .partners-wordmark img { max-width: 130px; }
    .partners-landing-hero { width: min(100% - 1.25rem, 1180px); min-height: auto; padding: 4rem 0; }
    .partners-landing-hero h1 { font-size: clamp(2.65rem, 14vw, 4rem); }
    .partners-landing-proof { grid-template-columns: 1fr; }
    .partners-preview::before { width: 350px; height: 350px; }
    .partners-preview::after { width: 260px; height: 260px; }
    .partners-phone { width: 245px; min-height: 470px; }
    .partners-section__inner { width: min(100% - 1.25rem, 1180px); }
    .partners-section__heading h2 { font-size: 2.7rem; }
    .partners-content { width: min(100% - 1.25rem, 1360px); padding-top: 1.1rem; }
    .partners-page-head { align-items: flex-start; flex-direction: column; }
    .partners-kpis, .partners-kpis--twelve { grid-template-columns: 1fr; }
    .partners-copy { grid-template-columns: 1fr; }
    .partners-copy button { width: 100%; }
    .partners-table { min-width: 680px; }
    .partners-table th:first-child, .partners-table td:first-child { position: sticky; left: 0; z-index: 1; background: #0d1029; box-shadow: 10px 0 18px -16px rgba(0,0,0,.9); }
    .partners-table th:first-child { z-index: 2; }
    /* FilterBar em mobile: empilha em blocos de largura cheia. Os chips
       QUEBRAM linha dentro do próprio container (em vez de rolar): opção
       escondida sem affordance é opção que o afiliado não encontra. */
    .partners-filterbar { padding: .8rem .85rem; }
    .partners-chipgroup { flex-wrap: wrap; border-radius: var(--partners-radius-md); }
    .partners-filterbar__quick { gap: .45rem; }
    .partners-filterbar__quick > .partners-filterbar__legend { width: 100%; }
    .partners-chipgroup { width: 100%; }
    .partners-chip-btn { flex: 1 1 auto; justify-content: center; }
    .partners-filterbar__window { width: 100%; justify-content: flex-start; white-space: normal; }
    .partners-filterbar__form, .partners-filterbar__fields { display: grid; gap: .6rem; }
    .partners-filterbar__group--dates, .partners-filterbar__group--search, .partners-filterbar__group--status { flex: none; max-width: none; }
    .partners-daterange { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); }
    .partners-inputwrap input[type="date"] { width: 100%; }
    .partners-filterbar__actions { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .45rem; margin-left: 0; }
    .partners-perpage { justify-content: space-between; }
    /* Header de painel deixa de disputar 3 colunas numa tela de 375px. */
    .partners-panel__head { flex-wrap: wrap; align-items: flex-start; gap: .35rem .8rem; }
    .partners-panel__head > div { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---------------------------------------------------------------------------
 * MODULO DE SUBCONTAS / SUBAFILIADOS
 *
 * Estas classes eram usadas pelas views do modulo e NAO existiam em nenhuma
 * folha de estilo — nem aqui, nem em outro arquivo, nem inline. O layout do
 * portal carrega SO este arquivo, entao a Central de Subcontas, o dashboard da
 * subconta, o formulario de nova subconta e a edicao de acordo renderizavam sem
 * estilo nenhum: grade virava empilhamento, dinheiro por moeda saia como texto
 * corrido e o fieldset ficava com a borda default do navegador.
 *
 * Nenhum token novo. Tudo herda as variaveis do topo, entao um whitelabel que
 * troca `--partners-brand` continua coerente aqui.
 * ------------------------------------------------------------------------- */

/* DINHEIRO MULTI-MOEDA.
 * `partners.partials.money` imprime UMA LINHA POR MOEDA e nunca soma. O estilo
 * precisa deixar isso legivel como lista, nao como um numero unico: cada linha
 * mostra o codigo da moeda e o valor alinhado por tabular-nums, de forma que
 * BRL e CLP fiquem visivelmente separados em vez de parecerem um total. */
.partners-money { display: inline-grid; gap: .15rem; }
.partners-money__line { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.partners-money__currency { color: var(--partners-subtle); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.partners-money__value { font-variant-numeric: tabular-nums; font-weight: 800; }
.partners-money--empty { color: var(--partners-subtle); font-weight: 700; }

/* Painel "Volumes e comissao": um cartao por metrica, cada um com o mapa de
 * moedas dentro. auto-fit para caber de 5 colunas a 1 sem media query. */
.partners-money-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8rem; }
.partners-money-grid__item { display: grid; gap: .4rem; align-content: start; padding: .85rem .95rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-md); background: rgba(255,255,255,.02); }
.partners-money-grid__label { color: var(--partners-subtle); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

/* Variantes de grade usadas pelo dashboard da subconta. `.partners-grid` base
 * e' 2 colunas assimetricas; estas duas nao herdam isso. */
.partners-grid--kpis { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.partners-grid--thirds { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* Termos do acordo vigente (<dl>). Duas colunas rotulo/valor, alinhadas. */
.partners-definitions { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr); gap: .45rem .9rem; margin: 0; }
.partners-definitions dt { color: var(--partners-subtle); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.partners-definitions dd { margin: 0; color: var(--partners-text); font-size: .88rem; font-weight: 700; }

/* Agrupamento de campos no formulario de nova subconta e na edicao de acordo.
 * Remove a borda/legenda default do navegador, que nao combina com o dark. */
.partners-fieldset { display: grid; gap: 1rem; margin: 0; padding: 1rem 1.05rem; border: 1px solid var(--partners-line); border-radius: var(--partners-radius-md); background: rgba(255,255,255,.02); }
.partners-fieldset > legend { padding: 0 .4rem; color: var(--partners-violet); font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

/* Campo booleano: checkbox ao lado do rotulo, nao acima dele. `.partners-field`
 * e' `display:grid`, que empilharia o checkbox e o texto. */
.partners-field--inline { display: flex; align-items: center; gap: .55rem; font-weight: 700; }
.partners-field--inline input[type="checkbox"] { width: 1.05rem; min-height: 0; height: 1.05rem; margin: 0; accent-color: var(--partners-accent); cursor: pointer; }

/* Texto secundario e aviso. `partners-note` marca o bloco que explica quais
 * termos sao ADMIN-ONLY: precisa ler como informacao, nao como erro. */
.partners-muted { color: var(--partners-subtle); font-weight: 600; }
.partners-note { padding: .8rem .9rem; border: 1px solid var(--partners-line-strong); border-left: 3px solid var(--partners-violet); border-radius: var(--partners-radius-sm); background: rgba(167,139,250,.07); color: var(--partners-muted); font-size: .84rem; line-height: 1.5; }

@media (max-width: 720px) {
    .partners-definitions { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
    .partners-definitions dd { margin-bottom: .5rem; }
}
