/* Shared partner palette follows the public KasaFlow theme. */
.partner-landing, .partner-auth-page, .partner-portal-body {
    --partner-ink: #0e1512;
    --partner-muted: #566259;
    --partner-green: #0e8a5f;
    --partner-green-dark: #0a6a48;
    --partner-green-bright: #19b67c;
    --partner-line: rgba(14, 21, 18, .12);
    --partner-surface: #ffffff;
    --partner-soft: #f2f7f4;
    --partner-field: #fbfdfc;
    --partner-accent: rgba(14, 138, 95, .1);
    --partner-page: #fbfdfc;
    --partner-lime: #c7ef45;
    --partner-shadow: 0 18px 48px rgba(20, 55, 40, .08);
    color: var(--partner-ink);
    color-scheme: light;
    font-family: "Inter", sans-serif;
    font-size: 15px;
    line-height: 1.6;
}
html[data-theme="dark"] :is(.partner-landing, .partner-auth-page, .partner-portal-body) {
    --partner-ink: #edf5ef;
    --partner-muted: #a7bbb0;
    --partner-green: #71d5aa;
    --partner-green-dark: #8ce0bd;
    --partner-green-bright: #71d5aa;
    --partner-line: rgba(237, 246, 243, .12);
    --partner-surface: #111f19;
    --partner-soft: #0d1914;
    --partner-field: #0d1914;
    --partner-accent: rgba(45, 174, 124, .1);
    --partner-page: #09120e;
    --partner-shadow: 0 18px 48px rgba(0, 0, 0, .22);
    color-scheme: dark;
}
.partner-landing *, .partner-auth-page *, .partner-portal-body * { box-sizing: border-box; }
.partner-landing, .partner-auth-page {
    background:
        radial-gradient(circle at 12% 0%, rgba(14, 138, 95, .14), transparent 48%),
        radial-gradient(circle at 100% 12%, rgba(255, 107, 74, .08), transparent 46%),
        var(--partner-page);
}
.partner-portal-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 5%, rgba(199, 239, 69, .16), transparent 29%),
        radial-gradient(circle at 92% 24%, rgba(14, 138, 95, .1), transparent 25%),
        linear-gradient(180deg, #f8fbf8 0%, #f3f7f4 100%);
}
html[data-theme="dark"] .partner-portal-body {
    background:
        radial-gradient(circle at 8% 5%, rgba(145, 214, 83, .08), transparent 28%),
        radial-gradient(circle at 92% 24%, rgba(33, 154, 107, .09), transparent 24%),
        var(--partner-page);
}
.partner-wordmark, .partner-hero h1, .partner-auth-story h1,
.partner-auth-card header h1, .partner-auth-card header h2,
.partner-dashboard-head h1, .partner-data-card header h2,
.partner-claim-card h2, .partner-how h2,
.partner-stat-grid strong, .partner-visual-main strong, .partner-visual-code strong,
.partner-referral-panel strong, .partner-claim-card > strong {
    font-family: "Plus Jakarta Sans", sans-serif;
    color: var(--partner-ink);
}
.partner-policy-strip h2{ color: #eaf3ec; }
.partner-wordmark { font-size: 0.96rem; letter-spacing: -.5px; gap: 10px; }
.partner-wordmark > span { width: 38px; height: 38px; background: linear-gradient(135deg, #0e8a5f, #19b67c); border-radius: 12px; color: #fff; }
.partner-wordmark b { color: var(--partner-muted); border-color: var(--partner-line); font-size: 12px; letter-spacing: 0; }
.partner-public-nav { min-height: 92px; border-bottom: 1px solid var(--partner-line); }
.partner-public-nav > div a { color: var(--partner-ink); font-size: 13px; }
.partner-public-nav .partner-nav-cta {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
    padding: 0 21px; border: 1px solid transparent; border-radius: 999px; color: #fff;
    background: linear-gradient(135deg, #0e8a5f 0%, #19b67c 100%);
    box-shadow: 0 14px 28px rgba(14, 138, 95, .2);
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.partner-public-nav .partner-nav-cta:hover { background: linear-gradient(135deg, #0a6a48, #0e8a5f); box-shadow: 0 17px 34px rgba(14, 138, 95, .25); transform: translateY(-1px); }
.partner-hero { min-height: 600px; gap: 48px; padding: 66px 0; }
.partner-hero h1 { font-size: clamp(36px, 4.1vw, 60px); line-height: 1.13; letter-spacing: -.045em; max-width: 660px; }
.partner-hero-copy > p:not(.partner-kicker) { font-size: 16px; line-height: 1.8; max-width: 560px; }
.partner-kicker, .partner-policy-strip span, .partner-auth-card header p,
.partner-dashboard-head p, .partner-data-card header p, .partner-claim-card > p { color: var(--partner-green); font-size: 11px; letter-spacing: .13em; }
.partner-hero-copy > p:not(.partner-kicker), .partner-auth-story > p:not(.partner-kicker),
.partner-how p, .partner-policy-strip p, .partner-trust-row, .partner-public-footer,
.partner-auth-card header span, .partner-auth-switch,
.partner-dashboard-head > div > span, .partner-stat-grid span, .partner-stat-grid small,
.partner-data-card > header > span, .partner-data-card th, .partner-data-card td small,
.partner-claim-card > small, .partner-header-account small, .partner-visual-main small,
.partner-visual-main span, .partner-visual-code small { color: var(--partner-muted)}
.partner-auth-card label small { color: var(--partner-muted); padding-left: 7px}
.partner-hero-actions a {
    display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
    padding: 0 25px; border: 1px solid var(--partner-line); border-radius: 999px;
    font: 700 13px "Plus Jakarta Sans", sans-serif; text-decoration: none;
    background: rgba(255,255,255,.72); color: var(--partner-ink); backdrop-filter: blur(10px);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.partner-hero-actions a:hover { border-color: rgba(14,138,95,.42); transform: translateY(-1px); }
.partner-hero-actions a:first-child { background: linear-gradient(135deg, #0e8a5f, #19b67c); border-color: transparent; color: #fff; box-shadow: 0 16px 32px rgba(14,138,95,.24); }
.partner-hero-actions a:first-child:hover { background: linear-gradient(135deg, #0a6a48, #0e8a5f); }
.partner-trust-row { gap: 15px; font-size: 11px; flex-wrap: wrap; }
.partner-visual-card { background: color-mix(in srgb, var(--partner-surface) 92%, transparent); border-color: var(--partner-line); box-shadow: var(--partner-shadow); backdrop-filter: blur(14px); }
.partner-hero-visual { min-height: 410px; }
.partner-visual-main { inset: 45px 24px 35px; padding: 30px; transform: none; border-radius: 24px; }
.partner-visual-main strong { font-size: clamp(28px, 3vw, 42px); }
.partner-visual-main > div { height: 108px; margin-top: 24px; }
.partner-visual-code { bottom: 0; transform: none; border-radius: 14px; }
.partner-visual-pulse { top: 16px; font-size: 12px; border-radius: 14px; }
.partner-how { padding: 46px 0; gap: 28px; border-color: var(--partner-line); }
.partner-how article { padding: 8px 20px 8px 0; }
.partner-how h2 { font-size: 17px; line-height: 1.5; }
.partner-how p, .partner-policy-strip p { font-size: 14px; }
.partner-policy-strip p { font-size: 14px; color: #a7bbb0 !important; }
.partner-policy-strip { background: linear-gradient(135deg, #0b1c16 0%, #12342a 60%, #0e8a5f 100%); border-color: var(--partner-line); padding: 34px; gap: 36px; box-shadow: var(--partner-shadow); }
.partner-policy-strip h2 { font-size: 26px; letter-spacing: -.035em; }
.partner-public-footer { border-color: var(--partner-line); }
.partner-auth-page { position: relative; padding-bottom: 60px; }
.partner-auth-grid { max-width: 1080px; gap: 64px; margin-top: 58px; }
.partner-auth-story h1 { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.2; letter-spacing: -.045em; }
.partner-auth-story > p:not(.partner-kicker) { font-size: 14px; }
.partner-auth-story > div { font-size: 13px; }
.partner-auth-story > div span { color: var(--partner-green); border-color: var(--partner-line); }
.partner-auth-card { background: color-mix(in srgb, var(--partner-surface) 96%, transparent); border-color: var(--partner-line); padding: 32px; gap: 20px; border-radius: 22px; box-shadow: var(--partner-shadow); backdrop-filter: blur(12px); }
.partner-auth-card header h1, .partner-auth-card header h2 { font-size: 27px; letter-spacing: -.035em; }
.partner-auth-card header span { font-size: 13px; }
.partner-auth-card label, .partner-claim-card label { color: var(--partner-ink); font-size: 12px; display: block;}
.partner-password-wrap { position: relative; margin-top: 7px; }
.partner-password-wrap input { margin-top: 0 !important; padding-right: 72px; }
.partner-password-toggle {
    position: absolute; top: 50%; right: 9px; transform: translateY(-50%);
    min-height: 30px; padding: 0 9px; border: 1px solid var(--partner-line); border-radius: 999px;
    background: transparent; color: var(--partner-green-dark); font: 700 11px "Plus Jakarta Sans", sans-serif;
    cursor: pointer;
}
.partner-password-toggle:hover { background: var(--partner-accent); }
.partner-auth-card :is(input, select, textarea),
.partner-claim-card :is(input, select, textarea) {
    color: var(--partner-ink);
    -webkit-text-fill-color: var(--partner-ink);
    caret-color: var(--partner-green);
    border: 1px solid var(--partner-line);
    background: var(--partner-field);
    font: 400 .82rem "Inter", sans-serif;
    min-height: 48px;
    border-radius: 9px;
    width: 100%;
    margin-top: 7px;
}
.partner-auth-card :is(input, textarea)::placeholder, .partner-claim-card textarea::placeholder {
    color: var(--partner-muted); -webkit-text-fill-color: var(--partner-muted); opacity: .85;
}
.partner-auth-card input:autofill, .partner-auth-card input:-webkit-autofill {
    -webkit-text-fill-color: var(--partner-ink);
    box-shadow: 0 0 0 1000px var(--partner-field) inset;
}
.partner-auth-card :is(input, select, textarea):focus-visible,
.partner-claim-card :is(select, textarea):focus-visible {
    outline: 0px solid rgba(14, 138, 95, 0); 
    outline-offset: 2px; box-shadow: none;
}
.partner-auth-switch a { color: var(--partner-green); }
.partner-auth-help { margin: -8px 0 0; text-align: right; font-size: 12px; }
.partner-auth-help a, .partner-resend-form button { color: var(--partner-green); }
.partner-resend-form { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px auto 0; color: var(--partner-muted); font-size: 12px; }
.partner-resend-form button { padding: 0; border: 0; background: transparent; font: 700 12px "Inter", sans-serif; cursor: pointer; }
.partner-auth-card > button, .partner-claim-card button {
    min-height: 48px; padding: 0 22px; border: 1px solid transparent; border-radius: 999px;
    color: #fff; background: linear-gradient(135deg, #0e8a5f, #19b67c);
    box-shadow: 0 14px 28px rgba(14,138,95,.2); font: 700 13px "Plus Jakarta Sans", sans-serif;
    cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.partner-auth-card > button:hover, .partner-claim-card button:hover { background: linear-gradient(135deg, #0a6a48, #0e8a5f); box-shadow: 0 17px 34px rgba(14,138,95,.25); transform: translateY(-1px); }
.partner-auth-login-page { padding-top: 130px; padding-bottom: 90px; }
.partner-login-card { width: min(460px, 100%); }
.partner-dev-code { background: var(--partner-soft); border-color: var(--partner-line); }
.partner-theme-toggle, .partner-header-account .partner-theme-toggle {
    display: inline-grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px;
    padding: 0; border: 1px solid var(--partner-line); border-radius: 999px;
    background: color-mix(in srgb, var(--partner-surface) 82%, transparent); color: var(--partner-ink); cursor: pointer;
    backdrop-filter: blur(10px); transition: color .16s ease, border-color .16s ease, background .16s ease, transform .16s ease;
}
.partner-theme-toggle:hover { color: var(--partner-green); border-color: color-mix(in srgb, var(--partner-green) 44%, transparent); transform: translateY(-1px); }
.partner-auth-page > .partner-theme-toggle { position: absolute; top: 26px; right: clamp(20px,5vw,76px); }
.partner-theme-toggle:focus-visible, .partner-landing a:focus-visible,
.partner-auth-page button:focus-visible, .partner-portal-body button:focus-visible {
    /* outline: 2px solid var(--partner-green);  */
    outline-offset: 4px;
}
.partner-portal-header {
    position: sticky; z-index: 20; top: 0; min-height: 78px;
    background: color-mix(in srgb, var(--partner-surface) 84%, transparent);
    border-color: var(--partner-line); backdrop-filter: blur(18px);
}
.partner-header-account button {
    min-height: 38px; padding: 0 15px; border: 1px solid var(--partner-line); border-radius: 999px;
    background: transparent; color: var(--partner-ink); font: 700 12px "Plus Jakarta Sans", sans-serif;
    transition: color .16s ease, border-color .16s ease, background .16s ease;
}
.partner-header-account button:hover { color: var(--partner-green-dark); border-color: color-mix(in srgb, var(--partner-green) 45%, transparent); background: var(--partner-accent); }
.partner-portal-main { width: min(100%, 1280px); padding-top: 48px; }
.partner-dashboard-head { align-items: center; }
.partner-dashboard-head h1 { margin-top: 7px; font-size: clamp(29px, 4vw, 40px); letter-spacing: -.05em; }
.partner-status-pill, .partner-ledger-status { background: var(--partner-soft); border: 1px solid var(--partner-line); color: var(--partner-green-dark); }
.partner-status-pill { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border-radius: 999px; }
.partner-status-pill::before { width: 7px; height: 7px; content: ""; border-radius: 50%; background: #19b67c; box-shadow: 0 0 0 5px rgba(25,182,124,.1); }
.partner-stat-grid article, .partner-data-card, .partner-claim-card {
    background: color-mix(in srgb, var(--partner-surface) 96%, transparent); border-color: var(--partner-line);
    box-shadow: var(--partner-shadow); backdrop-filter: blur(12px);
}
.partner-stat-grid { gap: 14px; margin: 18px 0; }
.partner-stat-grid article { position: relative; overflow: hidden; min-height: 132px; padding: 21px; border-radius: 18px; }
.partner-stat-grid article::after { position: absolute; right: -28px; bottom: -42px; width: 100px; height: 100px; content: ""; border: 1px solid color-mix(in srgb, var(--partner-green) 18%, transparent); border-radius: 50%; }
.partner-stat-grid strong { font-size: 25px; letter-spacing: -.04em; }
.partner-stat-grid .partner-stat-highlight { background: linear-gradient(145deg, color-mix(in srgb, var(--partner-lime) 17%, var(--partner-surface)), color-mix(in srgb, var(--partner-green) 7%, var(--partner-surface))); border-color: color-mix(in srgb, var(--partner-green) 22%, var(--partner-line)); }
.partner-referral-panel strong { color: #fff; }
.partner-referral-link input { color: #fff; -webkit-text-fill-color: #fff; }
.partner-referral-panel {
    position: relative; overflow: hidden; padding: 30px; border: 1px solid rgba(255,255,255,.12); border-radius: 24px;
    background: linear-gradient(125deg, #07533c 0%, #0e8a5f 62%, #0a694b 100%);
    box-shadow: 0 24px 60px rgba(5,73,51,.16);
}
.partner-referral-panel::after { position: absolute; right: -80px; top: -110px; width: 300px; height: 300px; content: ""; border: 1px solid rgba(199,239,69,.22); border-radius: 50%; box-shadow: 0 0 0 38px rgba(199,239,69,.04), 0 0 0 76px rgba(199,239,69,.025); pointer-events: none; }
.partner-referral-panel > * { position: relative; z-index: 1; }
.partner-referral-link input { min-height: 46px; padding: 0 14px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px 0 0 999px; background: rgba(255,255,255,.1); font: 600 12px "Inter", sans-serif; }
.partner-referral-link button { min-width: 104px; border-radius: 0 999px 999px 0; background: var(--partner-lime); font: 800 12px "Plus Jakarta Sans", sans-serif; transition: background .16s ease, transform .16s ease; }
.partner-referral-link button:hover { background: #d6f66b; }
.partner-dashboard-grid { gap: 18px; }
.partner-data-card, .partner-claim-card { border-radius: 22px; }
.partner-data-card > header, .partner-data-card :is(th,td) { border-color: var(--partner-line); }
.partner-data-card > header { padding: 22px 24px; background: linear-gradient(110deg, var(--partner-accent), transparent 65%); }
.partner-data-card th { background: var(--partner-soft); }
.partner-data-card tbody tr { transition: background .16s ease; }
.partner-data-card tbody tr:hover { background: var(--partner-accent); }
.partner-empty-cell { color: var(--partner-muted); }
.partner-claim-card { padding: 25px; }
.partner-claim-card > strong { color: var(--partner-green-dark); }
.partner-claim-card textarea { padding: 12px; resize: vertical; }
.partner-claim-card button:disabled { box-shadow: none; transform: none; }
.partner-claims-history { margin-top: 18px; }
html[data-theme="dark"] .partner-hero-actions a:not(:first-child) { background: rgba(17,31,25,.78); }
html[data-theme="dark"] .partner-referral-panel { background: linear-gradient(125deg,#0c3428 0%,#0b503b 58%,#123d30 100%); box-shadow: 0 24px 60px rgba(0,0,0,.26); }
html[data-theme="dark"] .partner-stat-grid .partner-stat-highlight { background: linear-gradient(145deg,rgba(199,239,69,.08),rgba(45,174,124,.08)); }
@media (max-width: 900px) {
    .partner-hero { padding-top: 46px; gap: 28px; }
    .partner-hero-copy { max-width: 680px; }
    .partner-hero-visual { width: min(520px,100%); margin: auto; }
    .partner-auth-grid { max-width: 580px; }
}
@media (max-width: 600px) {
    .partner-public-nav { min-height: 80px; gap: 10px; }
    .partner-public-nav > div { gap: 8px; }
    .partner-public-nav .partner-nav-cta { padding: 10px; font-size: 11px; }
    .partner-wordmark { font-size: 0.82rem; gap: 7px; }
    .partner-auth-page > .partner-wordmark b { display: none; }
    .partner-hero h1 { font-size: 36px; }
    .partner-hero-visual { min-height: 350px; }
    .partner-visual-main { inset: 35px 4px 26px; padding: 24px; }
    .partner-visual-code { padding: 14px; }
    .partner-visual-main > div { height: 86px; }
    .partner-auth-card { padding: 24px 20px; }
    .partner-auth-grid { margin-top: 40px; }
    .partner-policy-strip { padding: 24px; }
    .partner-dashboard-head h1 { font-size: 28px; }
    .partner-portal-main { padding: 28px 15px 60px; }
    .partner-portal-header { min-height: 68px; padding-inline: 16px; }
    .partner-referral-panel { padding: 22px; border-radius: 20px; }
    .partner-referral-link > span { display: grid; }
    .partner-referral-link input { border-radius: 12px 12px 0 0; }
    .partner-referral-link button { min-height: 42px; border-radius: 0 0 12px 12px; }
    .partner-stat-grid article { min-height: 116px; padding: 17px; }
    .partner-data-card, .partner-claim-card { border-radius: 18px; }
    .partner-header-account { gap: 8px; }
    .partner-header-account .partner-theme-toggle { width: 36px; height: 36px; flex-basis: 36px; }
}
@media (prefers-reduced-motion: no-preference) {
    .partner-hero-copy, .partner-auth-card { animation: partner-reveal .45s ease-out both; }
    .partner-hero-visual { animation: partner-reveal .6s .1s ease-out both; }
    @keyframes partner-reveal { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
}
