/* ============================================================
   KAVERI - tema verde + creme
   Folha unica do app. Tokens no topo, componentes por tela,
   e no fim o acabamento das telas antigas (tnl-*) no mesmo tema.
   ============================================================ */

:root {
    --kv-forest: #123f2a;
    --kv-forest-2: #0c301f;
    --kv-green: #1d6a44;
    --kv-leaf: #2f8f5b;
    --kv-leaf-2: #51ab74;
    --kv-lime: #d9efc1;
    --kv-mint: #edf6e4;
    --kv-mint-2: #f3f9ec;
    --kv-cream: #f6f1e6;
    --kv-cream-2: #efe7d6;
    --kv-paper: #fffdf8;
    --kv-sand: #e7dcc6;
    --kv-ink: #17251c;
    --kv-ink-2: #3a4a3e;
    --kv-muted: #77857a;
    --kv-muted-2: #9aa69c;
    --kv-gold: #c9a25c;
    --kv-red: #b4463c;
    --kv-radius: 22px;
    --kv-radius-sm: 15px;
    --kv-shadow: 0 12px 30px rgba(24, 54, 36, .09);
    --kv-shadow-soft: 0 4px 14px rgba(24, 54, 36, .07);
    --kv-max: 460px;
    --kv-nav-h: 74px;
    --kv-display: 'Fraunces', 'Playfair Display', Georgia, serif;
    --kv-sans: 'Manrope', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body.kv-body {
    margin: 0;
    min-height: 100vh;
    background: #0b2a1b;
    color: var(--kv-ink);
    font-family: var(--kv-sans);
    font-size: 14px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* fundo de mesa no desktop */
body.kv-body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(900px 500px at 15% -10%, rgba(81, 171, 116, .23), transparent 65%),
        radial-gradient(700px 420px at 100% 110%, rgba(201, 162, 92, .12), transparent 60%),
        linear-gradient(160deg, #0a2518 0%, #0f3824 55%, #0a2518 100%);
}

/* Seletor de base com especificidade zero: qualquer classe de tela vence. */
:where(body.kv-body) :where(a) {
    color: inherit;
    text-decoration: none;
}

body.kv-body img {
    max-width: 100%;
    display: block;
}

:where(body.kv-body) :where(button, input, select, textarea) {
    font: inherit;
    color: inherit;
}

.kv-app {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--kv-max);
    min-height: 100vh;
    margin: 0 auto;
    background: var(--kv-cream);
    box-shadow: 0 0 70px rgba(0, 0, 0, .38);
    padding-bottom: calc(var(--kv-nav-h) + env(safe-area-inset-bottom, 0px));
    overflow-x: hidden;
}

.kv-app--auth {
    background: var(--kv-cream);
}

.kv-app--navless {
    padding-bottom: 0;
}

/* ---------- tipografia ---------- */

.kv-display {
    font-family: var(--kv-display);
    font-weight: 600;
    letter-spacing: -.02em;
}

.kv-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.kv-muted {
    color: var(--kv-muted);
}

.kv-tiny {
    font-size: 11px;
}

/* ---------- marca ---------- */

.kv-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.kv-brand__mark {
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(255, 253, 248, .14);
    border: 1px solid rgba(255, 253, 248, .22);
}

.kv-brand__mark svg {
    width: 25px;
    height: 25px;
}

.kv-brand__text {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.kv-brand__name {
    font-family: var(--kv-display);
    font-size: 21px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.kv-brand__sub {
    margin-top: 3px;
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: .26em;
    text-transform: uppercase;
    opacity: .68;
}

.kv-brand--dark .kv-brand__mark {
    background: var(--kv-forest);
    border-color: transparent;
}

.kv-brand--dark .kv-brand__name {
    color: var(--kv-forest);
}

.kv-brand--dark .kv-brand__sub {
    color: var(--kv-muted);
}

/* ---------- cabecalhos ---------- */

.kv-top {
    position: relative;
    padding: 22px 20px 30px;
    background:
        radial-gradient(420px 260px at 92% -20%, rgba(217, 239, 193, .32), transparent 65%),
        radial-gradient(300px 220px at -10% 110%, rgba(47, 143, 91, .45), transparent 70%),
        linear-gradient(155deg, var(--kv-forest) 0%, #174d32 70%, #1b5a3a 100%);
    color: var(--kv-paper);
    border-radius: 0 0 30px 30px;
    overflow: hidden;
}

.kv-top::after {
    content: "";
    position: absolute;
    right: -46px;
    bottom: -68px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    border: 1px solid rgba(255, 253, 248, .14);
    box-shadow:
        0 0 0 28px rgba(255, 253, 248, .035),
        0 0 0 58px rgba(255, 253, 248, .025);
    pointer-events: none;
}

.kv-top__bar {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.kv-top__actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

.kv-iconbtn {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    border: 1px solid rgba(255, 253, 248, .2);
    background: rgba(255, 253, 248, .1);
    color: var(--kv-paper);
    cursor: pointer;
    transition: transform .18s ease, background .18s ease;
}

.kv-iconbtn:hover {
    background: rgba(255, 253, 248, .18);
}

.kv-iconbtn:active {
    transform: scale(.95);
}

.kv-iconbtn svg {
    width: 19px;
    height: 19px;
}

.kv-iconbtn--light {
    background: var(--kv-paper);
    border-color: var(--kv-sand);
    color: var(--kv-forest);
}

.kv-greet {
    position: relative;
    z-index: 2;
    margin-top: 24px;
}

.kv-greet__hello {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    opacity: .68;
}

.kv-greet__name {
    margin: 5px 0 0;
    font-family: var(--kv-display);
    font-size: 31px;
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: -.02em;
}

.kv-greet__line {
    margin: 8px 0 0;
    font-size: 12px;
    font-weight: 500;
    opacity: .74;
}

.kv-top__leaf {
    position: absolute;
    top: 64px;
    right: -30px;
    width: 150px;
    opacity: .16;
    pointer-events: none;
}

/* cabecalho simples com voltar */
.kv-bar {
    position: sticky;
    top: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    gap: 12px;
    height: 62px;
    padding: 0 16px;
    background: rgba(246, 241, 230, .94);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(231, 220, 198, .8);
}

.kv-bar__title {
    flex: 1;
    text-align: center;
    font-family: var(--kv-display);
    font-size: 17px;
    font-weight: 600;
    color: var(--kv-forest);
}

.kv-bar__spacer {
    width: 38px;
    height: 38px;
}

.kv-bar .kv-iconbtn {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border-color: transparent;
    background: transparent;
    color: var(--kv-forest);
}

.kv-bar .kv-iconbtn:hover {
    background: rgba(18, 63, 42, .06);
}

/* ---------- corpo ---------- */

.kv-page {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 18px 16px 30px;
}

.kv-page--overlap {
    margin-top: -22px;
    position: relative;
    z-index: 3;
    padding-top: 0;
}

.kv-section {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.kv-section__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    padding: 0 2px;
}

.kv-section__title {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 19px;
    font-weight: 600;
    color: var(--kv-forest);
    letter-spacing: -.01em;
}

.kv-section__sub {
    margin: 2px 0 0;
    font-size: 11px;
    color: var(--kv-muted);
}

.kv-link {
    font-size: 11px;
    font-weight: 800;
    color: var(--kv-green);
    letter-spacing: .02em;
    white-space: nowrap;
}

.kv-link::after {
    content: " \203A";
    font-size: 15px;
    line-height: 0;
}

/* ---------- cartao ---------- */

.kv-card {
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .85);
    border-radius: var(--kv-radius);
    box-shadow: var(--kv-shadow-soft);
}

.kv-card--pad {
    padding: 16px;
}

.kv-card--green {
    background: linear-gradient(150deg, var(--kv-forest), #1b5a3a);
    border-color: transparent;
    color: var(--kv-paper);
}

.kv-card--mint {
    background: var(--kv-mint);
    border-color: #dbe9cd;
}

/* ---------- saldo ---------- */

.kv-balance {
    padding: 18px 18px 14px;
    overflow: hidden;
    position: relative;
}

.kv-balance::after {
    content: "";
    position: absolute;
    right: -42px;
    top: -58px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(47, 143, 91, .16), transparent 68%);
    pointer-events: none;
}

.kv-balance__label {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-balance__value {
    margin: 5px 0 2px;
    font-family: var(--kv-display);
    font-size: 34px;
    line-height: 1;
    font-weight: 600;
    color: var(--kv-forest);
    letter-spacing: -.03em;
}

.kv-balance__note {
    font-size: 10.5px;
    color: var(--kv-muted);
}

.kv-balance__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    margin-top: 15px;
}

.kv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 16px;
    border: 0;
    border-radius: 14px;
    background: var(--kv-forest);
    color: var(--kv-paper);
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: .01em;
    cursor: pointer;
    transition: transform .16s ease, filter .16s ease, background .16s ease;
}

.kv-btn:hover {
    filter: brightness(1.08);
}

.kv-btn:active {
    transform: translateY(1px) scale(.995);
}

.kv-btn svg {
    width: 17px;
    height: 17px;
}

.kv-btn--leaf {
    background: var(--kv-leaf);
}

.kv-btn--cream {
    background: var(--kv-mint);
    color: var(--kv-forest);
    border: 1px solid #d9e9c9;
}

.kv-btn--ghost {
    background: transparent;
    color: var(--kv-forest);
    border: 1px solid var(--kv-sand);
}

.kv-btn--block {
    width: 100%;
}

.kv-btn--sm {
    min-height: 36px;
    padding: 0 13px;
    border-radius: 11px;
    font-size: 11px;
}

.kv-btn:disabled,
.kv-btn.is-disabled {
    opacity: .48;
    cursor: not-allowed;
    filter: none;
}

/* ---------- mini estatisticas ---------- */

.kv-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.kv-stat {
    padding: 12px 9px;
    border-radius: 15px;
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .8);
    text-align: center;
    box-shadow: 0 2px 8px rgba(24, 54, 36, .04);
}

.kv-stat__value {
    display: block;
    font-family: var(--kv-display);
    font-size: 16px;
    font-weight: 600;
    color: var(--kv-forest);
    line-height: 1.1;
    white-space: nowrap;
}

.kv-stat__label {
    display: block;
    margin-top: 4px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

/* ---------- planos ---------- */

.kv-plans {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.kv-plan {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 14px 13px 13px;
    border-radius: 19px;
    border: 1px solid #dce8cf;
    background:
        radial-gradient(160px 110px at 110% -20%, rgba(217, 239, 193, .9), transparent 70%),
        var(--kv-paper);
    box-shadow: var(--kv-shadow-soft);
    overflow: hidden;
}

.kv-plan--b {
    border-color: #eadfc8;
    background:
        radial-gradient(160px 110px at 110% -20%, rgba(233, 220, 194, .8), transparent 70%),
        var(--kv-paper);
}

.kv-plan__tag {
    align-self: flex-start;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--kv-forest);
    color: var(--kv-paper);
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.kv-plan--b .kv-plan__tag {
    background: var(--kv-gold);
}

.kv-plan__name {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 19px;
    font-weight: 600;
    color: var(--kv-forest);
    line-height: 1.1;
}

.kv-plan__price {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--kv-ink);
    letter-spacing: -.02em;
}

.kv-plan__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding-top: 7px;
    border-top: 1px dashed rgba(119, 133, 122, .28);
    font-size: 10px;
    color: var(--kv-muted);
}

.kv-plan__row b {
    color: var(--kv-green);
    font-size: 10.5px;
    font-weight: 800;
    white-space: nowrap;
}

.kv-plan__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 3px;
    width: 100%;
    min-height: 36px;
    border: 0;
    border-radius: 11px;
    background: var(--kv-forest);
    color: var(--kv-paper);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .02em;
    text-align: center;
    cursor: pointer;
    transition: filter .16s ease;
}

.kv-plan__btn:hover {
    filter: brightness(1.12);
}

.kv-plan--b .kv-plan__btn {
    background: var(--kv-gold);
    color: #2b2214;
}

.kv-plan__leaf {
    position: absolute;
    right: -14px;
    bottom: 58px;
    width: 78px;
    opacity: .1;
    pointer-events: none;
}

/* ---------- cartao de time ---------- */

.kv-teamcard {
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 16px;
    border-radius: var(--kv-radius);
    background:
        radial-gradient(220px 140px at 100% 0%, rgba(217, 239, 193, .75), transparent 70%),
        var(--kv-mint);
    border: 1px solid #d7e7c4;
    overflow: hidden;
}

.kv-teamcard__icon {
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: var(--kv-forest);
    color: var(--kv-paper);
}

.kv-teamcard__icon svg {
    width: 23px;
    height: 23px;
}

.kv-teamcard__title {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 17px;
    font-weight: 600;
    color: var(--kv-forest);
}

.kv-teamcard__sub {
    margin: 3px 0 0;
    font-size: 10.5px;
    color: var(--kv-muted);
}

.kv-teamcard__go {
    margin-left: auto;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--kv-paper);
    color: var(--kv-forest);
    box-shadow: 0 2px 8px rgba(24, 54, 36, .12);
}

.kv-teamcard__go svg {
    width: 16px;
    height: 16px;
}

/* ---------- lista ---------- */

.kv-list {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--kv-radius);
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .85);
    box-shadow: var(--kv-shadow-soft);
}

.kv-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    border-bottom: 1px solid rgba(231, 220, 198, .55);
    background: transparent;
    transition: background .15s ease;
}

.kv-row:last-child {
    border-bottom: 0;
}

a.kv-row:hover {
    background: rgba(237, 246, 228, .55);
}

.kv-row__icon {
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: var(--kv-mint);
    color: var(--kv-green);
}

.kv-row__icon svg {
    width: 18px;
    height: 18px;
}

.kv-row__body {
    flex: 1;
    min-width: 0;
}

.kv-row__title {
    display: block;
    font-size: 12.5px;
    font-weight: 800;
    color: var(--kv-ink);
}

.kv-row__sub {
    display: block;
    margin-top: 2px;
    font-size: 10.5px;
    color: var(--kv-muted);
}

.kv-row__value {
    font-size: 11.5px;
    font-weight: 800;
    color: var(--kv-green);
    white-space: nowrap;
}

.kv-row__chev {
    width: 16px;
    height: 16px;
    color: var(--kv-muted-2);
    flex: 0 0 auto;
}

.kv-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--kv-mint);
    color: var(--kv-green);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.kv-chip--gold {
    background: #f6ecd8;
    color: #8b6a28;
}

.kv-chip--red {
    background: #f8e3e1;
    color: var(--kv-red);
}

/* ---------- estado vazio ---------- */

.kv-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    padding: 30px 18px;
    text-align: center;
    color: var(--kv-muted);
}

.kv-empty svg {
    width: 58px;
    height: 58px;
    color: #c8d4c5;
}

.kv-empty p {
    margin: 0;
    font-size: 11.5px;
}

/* ---------- auth ---------- */

.kv-auth {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(420px 320px at 100% 0%, rgba(217, 239, 193, .5), transparent 70%),
        var(--kv-cream);
}

.kv-auth__hero {
    position: relative;
    padding: 26px 22px 74px;
    background:
        radial-gradient(380px 280px at 100% 0%, rgba(217, 239, 193, .28), transparent 68%),
        linear-gradient(155deg, var(--kv-forest) 0%, #174d32 74%, #1d5d3c 100%);
    color: var(--kv-paper);
    border-radius: 0 0 34px 34px;
    overflow: hidden;
}

.kv-auth__hero--login {
    padding-bottom: 84px;
}

.kv-auth__leaf {
    position: absolute;
    pointer-events: none;
    opacity: .26;
}

.kv-auth__leaf--a {
    right: -54px;
    top: 40px;
    width: 220px;
    transform: rotate(-12deg);
}

.kv-auth__leaf--b {
    left: -60px;
    bottom: -70px;
    width: 190px;
    opacity: .16;
    transform: rotate(18deg);
}

.kv-auth__brand {
    position: relative;
    z-index: 2;
}

.kv-auth__hello {
    position: relative;
    z-index: 2;
    margin: 44px 0 0;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
    opacity: .66;
}

.kv-auth__title {
    position: relative;
    z-index: 2;
    margin: 8px 0 0;
    font-family: var(--kv-display);
    font-size: 46px;
    line-height: .98;
    font-weight: 600;
    letter-spacing: -.035em;
}

.kv-auth__title em {
    font-style: italic;
    color: var(--kv-lime);
}

.kv-auth__tagline {
    position: relative;
    z-index: 2;
    margin: 12px 0 0;
    max-width: 280px;
    font-size: 12px;
    line-height: 1.55;
    opacity: .76;
}

.kv-auth__sheet {
    position: relative;
    z-index: 3;
    margin: -46px 14px 0;
    padding: 22px 18px 20px;
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .9);
    border-radius: 26px;
    box-shadow: 0 18px 44px rgba(15, 45, 29, .16);
}

.kv-auth__sheet-title {
    margin: 0 0 2px;
    font-family: var(--kv-display);
    font-size: 21px;
    font-weight: 600;
    color: var(--kv-forest);
}

.kv-auth__sheet-sub {
    margin: 0 0 16px;
    font-size: 11px;
    color: var(--kv-muted);
}

.kv-auth__foot {
    margin-top: 18px;
    padding: 0 20px 26px;
    text-align: center;
    font-size: 11.5px;
    color: var(--kv-muted);
}

.kv-auth__foot a {
    color: var(--kv-green);
    font-weight: 800;
}

.kv-auth__legal {
    margin-top: 14px;
    font-size: 9.5px;
    line-height: 1.5;
    color: var(--kv-muted-2);
    text-align: center;
}

.kv-auth__legal a {
    color: var(--kv-green);
}

/* ---------- formularios ---------- */

.kv-field {
    display: block;
    margin-bottom: 12px;
}

.kv-field__label {
    display: block;
    margin: 0 0 6px 2px;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-field__box {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 0 13px;
    border-radius: 14px;
    border: 1px solid var(--kv-sand);
    background: #fffefb;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.kv-field__box:focus-within {
    border-color: var(--kv-leaf);
    box-shadow: 0 0 0 3px rgba(47, 143, 91, .12);
}

.kv-field__box > svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    color: var(--kv-leaf);
}

.kv-field__box input,
.kv-field__box select {
    width: 100%;
    min-width: 0;
    height: 46px;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 13px;
    font-weight: 600;
    color: var(--kv-ink);
}

.kv-field__box input::placeholder {
    color: var(--kv-muted-2);
    font-weight: 500;
}

.kv-field__action {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--kv-muted);
    cursor: pointer;
}

.kv-field__action svg {
    width: 17px;
    height: 17px;
}

.kv-field__hint {
    margin: 5px 0 0 2px;
    font-size: 9.5px;
    color: var(--kv-muted);
}

.kv-check {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 2px 0 14px;
    font-size: 10px;
    line-height: 1.5;
    color: var(--kv-muted);
    cursor: pointer;
}

.kv-check input {
    width: 16px;
    height: 16px;
    margin: 1px 0 0;
    accent-color: var(--kv-leaf);
    flex: 0 0 auto;
}

.kv-check b {
    color: var(--kv-green);
}

.kv-form__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: -2px 0 16px;
    font-size: 10.5px;
}

.kv-form__meta a {
    color: var(--kv-green);
    font-weight: 800;
}

.kv-alert {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fbe9e7;
    border: 1px solid #f1cfcb;
    color: #8e352c;
    font-size: 11px;
    line-height: 1.45;
}

.kv-alert--ok {
    background: var(--kv-mint);
    border-color: #d6e8c5;
    color: var(--kv-green);
}

/* ---------- navegacao inferior ---------- */

.kv-nav {
    position: fixed;
    z-index: 60;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 100%;
    max-width: var(--kv-max);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
    padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 253, 248, .96);
    backdrop-filter: blur(16px);
    border-top: 1px solid rgba(231, 220, 198, .9);
    box-shadow: 0 -8px 24px rgba(20, 50, 32, .06);
}

.kv-nav__item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 50px;
    border-radius: 13px;
    color: var(--kv-muted);
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: capitalize;
    transition: color .16s ease, background .16s ease;
}

.kv-nav__item svg {
    width: 20px;
    height: 20px;
}

.kv-nav__item.is-active {
    color: var(--kv-forest);
    background: var(--kv-mint);
}

.kv-nav__item.is-active::after {
    content: "";
    position: absolute;
    bottom: 5px;
    width: 14px;
    height: 2px;
    border-radius: 2px;
    background: var(--kv-leaf);
}

.kv-nav__item:active {
    transform: scale(.97);
}

/* ---------- equipe ---------- */

.kv-team-top {
    padding-bottom: 40px;
}

.kv-team-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-top: 22px;
}

.kv-team-hero__title {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 34px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: -.03em;
}

.kv-team-hero__sub {
    margin: 7px 0 0;
    font-size: 11px;
    opacity: .7;
}

.kv-team-hero__badge {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    background: rgba(255, 253, 248, .12);
    border: 1px solid rgba(255, 253, 248, .22);
    flex: 0 0 auto;
}

.kv-team-hero__badge svg {
    width: 27px;
    height: 27px;
}

.kv-claim {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 15px;
    border-radius: 19px;
    background:
        radial-gradient(200px 130px at 100% -20%, rgba(217, 239, 193, .9), transparent 70%),
        var(--kv-paper);
    border: 1px solid #d9e7ca;
    box-shadow: var(--kv-shadow-soft);
}

.kv-claim__icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--kv-lime);
    color: var(--kv-forest);
    flex: 0 0 auto;
}

.kv-claim__icon svg {
    width: 21px;
    height: 21px;
}

.kv-claim__body {
    flex: 1;
    min-width: 0;
}

.kv-claim__label {
    display: block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-claim__value {
    display: block;
    margin-top: 1px;
    font-family: var(--kv-display);
    font-size: 23px;
    line-height: 1.05;
    font-weight: 600;
    color: var(--kv-forest);
}

.kv-levels {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.kv-level {
    padding: 15px;
    border-radius: 20px;
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .85);
    box-shadow: var(--kv-shadow-soft);
}

.kv-level--1 {
    background:
        radial-gradient(220px 130px at 100% 0%, rgba(217, 239, 193, .55), transparent 70%),
        var(--kv-paper);
    border-color: #d9e7ca;
}

.kv-level--2 {
    background:
        radial-gradient(220px 130px at 100% 0%, rgba(233, 220, 194, .55), transparent 70%),
        var(--kv-paper);
}

.kv-level__head {
    display: flex;
    align-items: center;
    gap: 11px;
}

.kv-level__badge {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: var(--kv-forest);
    color: var(--kv-paper);
    font-family: var(--kv-display);
    font-size: 17px;
    font-weight: 600;
    flex: 0 0 auto;
}

.kv-level--2 .kv-level__badge {
    background: var(--kv-gold);
    color: #2b2214;
}

.kv-level__names {
    flex: 1;
    min-width: 0;
}

.kv-level__name {
    display: block;
    font-family: var(--kv-display);
    font-size: 17px;
    font-weight: 600;
    color: var(--kv-forest);
    line-height: 1.1;
}

.kv-level__sub {
    display: block;
    margin-top: 2px;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-level__rate {
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--kv-mint);
    color: var(--kv-green);
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.kv-level--2 .kv-level__rate {
    background: #f6ecd8;
    color: #8b6a28;
}

.kv-level__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    margin-top: 12px;
}

.kv-level__cell {
    padding: 8px 6px;
    border-radius: 11px;
    background: rgba(246, 241, 230, .65);
    text-align: center;
}

.kv-level__cell b {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--kv-forest);
    white-space: nowrap;
}

.kv-level__cell span {
    display: block;
    margin-top: 2px;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-level__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px dashed rgba(119, 133, 122, .3);
}

.kv-level__earned {
    font-size: 10px;
    color: var(--kv-muted);
}

.kv-level__earned b {
    color: var(--kv-green);
    font-size: 12px;
}

.kv-level__claim {
    min-height: 34px;
    padding: 0 16px;
    border: 0;
    border-radius: 10px;
    background: var(--kv-forest);
    color: var(--kv-paper);
    font-size: 10.5px;
    font-weight: 800;
    cursor: pointer;
}

.kv-level__claim.is-done {
    background: var(--kv-mint);
    color: var(--kv-muted);
    cursor: default;
}

.kv-level__claim:disabled {
    background: var(--kv-mint);
    color: var(--kv-muted);
    cursor: default;
}

/* ---------- perfil ---------- */

.kv-profile-top {
    padding-bottom: 38px;
}

.kv-profile {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 20px;
}

.kv-avatar {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 19px;
    background: rgba(255, 253, 248, .13);
    border: 1px solid rgba(255, 253, 248, .26);
    font-family: var(--kv-display);
    font-size: 24px;
    font-weight: 600;
    color: var(--kv-lime);
    flex: 0 0 auto;
}

.kv-profile__body {
    flex: 1;
    min-width: 0;
}

.kv-profile__name {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 24px;
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: -.02em;
}

.kv-profile__phone {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    opacity: .68;
    letter-spacing: .06em;
}

.kv-profile__id {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 7px;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(255, 253, 248, .12);
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.kv-profile__id svg {
    width: 11px;
    height: 11px;
}

.kv-services {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 13px 6px;
    padding: 4px 0;
}

.kv-service {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
}

.kv-service__ico {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .9);
    color: var(--kv-green);
    box-shadow: 0 3px 10px rgba(24, 54, 36, .05);
    transition: transform .15s ease, background .15s ease;
}

.kv-service:hover .kv-service__ico {
    transform: translateY(-2px);
    background: var(--kv-mint);
}

.kv-service__ico svg {
    width: 21px;
    height: 21px;
}

.kv-service__label {
    font-size: 8.5px;
    font-weight: 800;
    letter-spacing: .02em;
    color: var(--kv-ink-2);
    line-height: 1.2;
}

.kv-service:nth-child(5) {
    grid-column: 1 / span 1;
}

.kv-service--accent .kv-service__ico {
    background: var(--kv-forest);
    color: var(--kv-lime);
    border-color: transparent;
}

/* ---------- copiar/indicar ---------- */

.kv-invite {
    padding: 16px;
    border-radius: var(--kv-radius);
    background:
        radial-gradient(240px 150px at 100% 0%, rgba(217, 239, 193, .75), transparent 70%),
        var(--kv-mint);
    border: 1px solid #d7e7c4;
}

.kv-invite__label {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-invite__code {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 6px;
    padding: 11px 12px;
    border-radius: 12px;
    background: var(--kv-paper);
    border: 1px dashed #c9dcc0;
}

.kv-invite__code b {
    font-family: var(--kv-display);
    font-size: 19px;
    letter-spacing: .1em;
    color: var(--kv-forest);
}

.kv-invite__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 9px;
}

.kv-share-link {
    margin-top: 9px;
    padding: 9px 11px;
    border-radius: 10px;
    background: rgba(255, 253, 248, .65);
    border: 1px solid rgba(201, 220, 192, .6);
    font-size: 9.5px;
    color: var(--kv-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- banner de dica ---------- */

.kv-banner {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px;
    border-radius: 19px;
    background: linear-gradient(145deg, var(--kv-forest), #1b5a3a);
    color: var(--kv-paper);
    overflow: hidden;
}

.kv-banner::after {
    content: "";
    position: absolute;
    right: -30px;
    bottom: -50px;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 1px solid rgba(255, 253, 248, .14);
    box-shadow: 0 0 0 22px rgba(255, 253, 248, .04);
    pointer-events: none;
}

.kv-banner__body {
    position: relative;
    z-index: 2;
    flex: 1;
}

.kv-banner__title {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 17px;
    font-weight: 600;
}

.kv-banner__text {
    margin: 3px 0 0;
    font-size: 10px;
    opacity: .7;
}

.kv-banner__art {
    position: relative;
    z-index: 2;
    width: 58px;
    height: 58px;
    flex: 0 0 auto;
}

/* ---------- plano detalhado ---------- */

.kv-plan-sheet {
    padding: 16px;
    border-radius: 21px;
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .9);
    box-shadow: var(--kv-shadow-soft);
}

.kv-plan-sheet__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.kv-plan-sheet__name {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 23px;
    font-weight: 600;
    color: var(--kv-forest);
    line-height: 1.1;
}

.kv-plan-sheet__title {
    margin: 3px 0 0;
    font-size: 10.5px;
    color: var(--kv-muted);
}

.kv-plan-sheet__price {
    text-align: right;
    flex: 0 0 auto;
}

.kv-plan-sheet__price b {
    display: block;
    font-family: var(--kv-display);
    font-size: 21px;
    font-weight: 600;
    color: var(--kv-forest);
}

.kv-plan-sheet__price span {
    display: block;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-plan-sheet__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin: 13px 0;
}

.kv-plan-sheet__cell {
    padding: 9px 10px;
    border-radius: 11px;
    background: var(--kv-mint-2);
    border: 1px solid #e2edd8;
}

.kv-plan-sheet__cell span {
    display: block;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

.kv-plan-sheet__cell b {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 800;
    color: var(--kv-forest);
}

.kv-plan-sheet__owned {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 8px;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--kv-mint);
    color: var(--kv-green);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .04em;
}

/* ---------- modal ---------- */

.kv-modal {
    position: fixed;
    z-index: 90;
    inset: 0;
    display: none;
    align-items: flex-end;
    justify-content: center;
    background: rgba(9, 28, 18, .55);
    backdrop-filter: blur(3px);
    padding: 18px;
}

.kv-modal.is-open {
    display: flex;
}

.kv-sheet {
    width: 100%;
    max-width: 430px;
    max-height: 90vh;
    overflow-y: auto;
    padding: 20px;
    border-radius: 24px 24px 20px 20px;
    background: var(--kv-paper);
    box-shadow: 0 -20px 50px rgba(0, 0, 0, .24);
    animation: kv-up .24s ease;
}

@keyframes kv-up {
    from { transform: translateY(24px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.kv-sheet__grip {
    width: 36px;
    height: 4px;
    margin: 0 auto 14px;
    border-radius: 3px;
    background: var(--kv-sand);
}

.kv-sheet h3 {
    margin: 0;
    font-family: var(--kv-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--kv-forest);
}

.kv-sheet p {
    margin: 5px 0 0;
    font-size: 11.5px;
    color: var(--kv-muted);
}

/* ---------- toast ---------- */

.kv-toast {
    position: fixed;
    z-index: 120;
    left: 50%;
    bottom: calc(var(--kv-nav-h) + 18px);
    transform: translateX(-50%);
    max-width: min(90vw, 380px);
    padding: 12px 16px;
    border-radius: 13px;
    background: var(--kv-forest);
    color: var(--kv-paper);
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(9, 28, 18, .28);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}

body.kv-body button.kv-btn {
    color: var(--kv-paper);
}

body.kv-body button.kv-btn--cream,
body.kv-body button.kv-btn--ghost,
body.kv-body button.kv-btn--leaf {
    color: var(--kv-forest);
}

body.kv-body button.kv-btn--gold {
    color: #2b2214;
}

.kv-nav a,
.kv-nav a:hover,
.kv-nav a:focus {
    text-decoration: none;
}

.kv-btn,
.kv-plan__btn {
    text-decoration: none;
}

.kv-toast.is-show {
    opacity: 1;
    transform: translateX(-50%) translateY(-4px);
}

/* ---------- animacao de entrada ---------- */

.kv-fade {
    animation: kv-fade .4s ease both;
}

@keyframes kv-fade {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 560px) {
    .kv-app {
        margin: 18px auto;
        min-height: calc(100vh - 36px);
        border-radius: 26px;
        overflow: hidden;
    }

    .kv-nav {
        bottom: 18px;
        border-radius: 0 0 26px 26px;
    }
}

@media (max-width: 360px) {
    .kv-greet__name { font-size: 27px; }
    .kv-auth__title { font-size: 40px; }
    .kv-plan { padding: 12px 11px; }
    .kv-plan__price { font-size: 19px; }
    .kv-balance__value { font-size: 30px; }
}

/* ============================================================
   ACABAMENTO DAS TELAS ANTIGAS (tnl-*)
   Mantem todas as telas ja existentes funcionando, mas com a
   paleta, tipografia e cantos do tema Kaveri.
   ============================================================ */

body.tnl-body {
    background: #0b2a1b;
    font-family: var(--kv-sans);
}

body.tnl-body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(900px 500px at 15% -10%, rgba(81, 171, 116, .23), transparent 65%),
        radial-gradient(700px 420px at 100% 110%, rgba(201, 162, 92, .12), transparent 60%),
        linear-gradient(160deg, #0a2518 0%, #0f3824 55%, #0a2518 100%);
}

body.tnl-body .tnl-app {
    position: relative;
    z-index: 1;
    max-width: var(--kv-max);
    background: var(--kv-cream);
    padding-bottom: calc(var(--kv-nav-h) + 26px);
    box-shadow: 0 0 70px rgba(0, 0, 0, .38);
}

body.tnl-body .tnl-app--plain {
    padding-bottom: 26px;
}

body.tnl-body .tnl-header {
    background: rgba(246, 241, 230, .94);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(231, 220, 198, .8);
}

body.tnl-body .tnl-header__title {
    font-family: var(--kv-display);
    font-size: 17px;
    font-weight: 600;
    color: var(--kv-forest);
}

body.tnl-body .tnl-iconbtn {
    color: var(--kv-forest);
    border-radius: 12px;
}

body.tnl-body .tnl-page {
    gap: 14px;
    padding: 16px 16px 24px;
}

body.tnl-body .tnl-goldbar {
    height: 3px;
    background: linear-gradient(90deg, var(--kv-leaf), var(--kv-lime), var(--kv-leaf));
}

body.tnl-body .tnl-section-label {
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--kv-muted);
}

body.tnl-body .tnl-card {
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .85);
    border-radius: var(--kv-radius);
    box-shadow: var(--kv-shadow-soft);
}

body.tnl-body .tnl-btn {
    background: var(--kv-forest);
    color: var(--kv-paper);
    border: 0;
    border-radius: 14px;
    min-height: 46px;
    font-weight: 800;
    font-size: 12.5px;
    letter-spacing: .01em;
}

body.tnl-body .tnl-btn:hover {
    filter: brightness(1.08);
}

body.tnl-body .tnl-btn--sm {
    min-height: 38px;
    font-size: 11px;
}

body.tnl-body .tnl-balance {
    background:
        radial-gradient(220px 140px at 100% 0%, rgba(217, 239, 193, .6), transparent 70%),
        var(--kv-paper);
    border-color: #d9e7ca;
}

body.tnl-body .tnl-balance__label {
    color: var(--kv-muted);
    font-size: 9.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 800;
}

body.tnl-body .tnl-balance__value {
    font-family: var(--kv-display);
    color: var(--kv-forest);
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -.02em;
}

body.tnl-body .tnl-wallet {
    background: var(--kv-mint);
    color: var(--kv-green);
    border-radius: 999px;
    font-weight: 800;
    font-size: 9.5px;
}

body.tnl-body .tnl-stats {
    gap: 8px;
}

body.tnl-body .tnl-stat {
    background: var(--kv-paper);
    border: 1px solid rgba(231, 220, 198, .85);
    border-radius: 15px;
    box-shadow: var(--kv-shadow-soft);
}

body.tnl-body .tnl-stat__label {
    color: var(--kv-muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.tnl-body .tnl-stat__value {
    font-family: var(--kv-display);
    color: var(--kv-forest);
    font-size: 17px;
    font-weight: 600;
}

body.tnl-body .tnl-note {
    background: var(--kv-mint);
    border: 1px solid #dbe9cd;
    color: var(--kv-ink-2);
    border-radius: 13px;
    font-size: 10.5px;
}

body.tnl-body .tnl-planlock {
    background: #f0f7e9;
    border: 1px solid #d7e7c4;
    border-radius: 16px;
}

body.tnl-body .tnl-planlock__cta {
    background: var(--kv-forest);
    color: var(--kv-paper);
    border-radius: 10px;
    font-weight: 800;
}

body.tnl-body .tnl-planlock--blocked {
    background: #fbece9;
    border-color: #f1d3cd;
}

body.tnl-body .tnl-chip {
    border: 1px solid var(--kv-sand);
    border-radius: 11px;
    background: var(--kv-paper);
    color: var(--kv-forest);
    font-weight: 800;
}

body.tnl-body .tnl-chip.is-active,
body.tnl-body .tnl-chip:hover {
    background: var(--kv-forest);
    color: var(--kv-paper);
    border-color: var(--kv-forest);
}

body.tnl-body .tnl-amount__input,
body.tnl-body .tnl-amount input,
body.tnl-body .tnl-pixkey__field input,
body.tnl-body .tnl-field input,
body.tnl-body .tnl-field select {
    border: 1px solid var(--kv-sand);
    background: #fffefb;
    border-radius: 13px;
    color: var(--kv-ink);
}

body.tnl-body .tnl-amount__input:focus,
body.tnl-body .tnl-amount input:focus,
body.tnl-body .tnl-pixkey__field input:focus,
body.tnl-body .tnl-field input:focus {
    border-color: var(--kv-leaf);
    box-shadow: 0 0 0 3px rgba(47, 143, 91, .12);
    outline: 0;
}

body.tnl-body .tnl-method {
    border: 1px solid var(--kv-sand);
    border-radius: 15px;
    background: var(--kv-paper);
}

body.tnl-body .tnl-method.is-active {
    border-color: var(--kv-leaf);
    background: var(--kv-mint-2);
}

body.tnl-body .tnl-method__badge {
    background: var(--kv-mint);
    color: var(--kv-green);
    border-radius: 11px;
}

body.tnl-body .tnl-method--pix .tnl-method__badge {
    background: var(--kv-forest);
    color: var(--kv-paper);
}

body.tnl-body .tnl-method__check {
    background: var(--kv-leaf);
    color: #fff;
}

body.tnl-body .tnl-product {
    border: 1px solid rgba(231, 220, 198, .9);
    border-radius: 20px;
    background: var(--kv-paper);
    box-shadow: var(--kv-shadow-soft);
    overflow: hidden;
}

body.tnl-body .tnl-product__name {
    font-family: var(--kv-display);
    color: var(--kv-forest);
    font-weight: 600;
}

body.tnl-body .tnl-price-tag {
    background: var(--kv-mint);
    color: var(--kv-green);
    border-radius: 999px;
    font-weight: 800;
}

body.tnl-body .tnl-product__btn {
    background: var(--kv-forest);
    color: var(--kv-paper);
    border-radius: 13px;
    font-weight: 800;
}

body.tnl-body .tnl-metric {
    color: var(--kv-muted);
    border-top: 1px dashed rgba(119, 133, 122, .22);
}

body.tnl-body .tnl-metric__value {
    color: var(--kv-forest);
    font-weight: 800;
}

body.tnl-body .tnl-metric--green .tnl-metric__value {
    color: var(--kv-leaf);
}

body.tnl-body .tnl-product__owned {
    background: var(--kv-mint);
    color: var(--kv-green);
    border-radius: 999px;
    font-weight: 800;
}

body.tnl-body .tnl-sheet {
    background: var(--kv-paper);
    border-radius: 24px 24px 18px 18px;
}

body.tnl-body .tnl-sheet__name {
    font-family: var(--kv-display);
    color: var(--kv-forest);
}

body.tnl-body .tnl-sheet__amount {
    color: var(--kv-forest);
    font-family: var(--kv-display);
}

body.tnl-body .tnl-pill {
    border-radius: 999px;
    font-weight: 800;
    font-size: 9.5px;
    letter-spacing: .05em;
}

body.tnl-body .tnl-pill--ok {
    background: var(--kv-mint);
    color: var(--kv-green);
}

body.tnl-body .tnl-pill--wait {
    background: #f6ecd8;
    color: #8b6a28;
}

body.tnl-body .tnl-pill--no {
    background: #f8e3e1;
    color: var(--kv-red);
}

body.tnl-body .tnl-pixhead__amount {
    font-family: var(--kv-display);
    color: var(--kv-forest);
}

body.tnl-body .tnl-pixqr textarea {
    border: 1px dashed #c9dcc0;
    background: var(--kv-mint-2);
    border-radius: 12px;
    color: var(--kv-muted);
}

body.tnl-body .tnl-ptype,
body.tnl-body .tnl-pixtype {
    border-radius: 10px;
    border: 1px solid var(--kv-sand);
    background: var(--kv-paper);
    color: var(--kv-muted);
    font-weight: 800;
    font-size: 10px;
}

body.tnl-body .tnl-pixtype.is-active {
    background: var(--kv-forest);
    border-color: var(--kv-forest);
    color: var(--kv-paper);
}

body.tnl-body .tnl-mgmt {
    border-radius: var(--kv-radius);
    border: 1px solid rgba(231, 220, 198, .85);
    background: var(--kv-paper);
    box-shadow: var(--kv-shadow-soft);
}

body.tnl-body .tnl-mgmt__row {
    border-bottom: 1px solid rgba(231, 220, 198, .55);
}

body.tnl-body .tnl-mgmt__icon {
    background: var(--kv-mint);
    color: var(--kv-green);
    border-radius: 12px;
}

body.tnl-body .tnl-mgmt__title {
    color: var(--kv-ink);
    font-weight: 800;
}

body.tnl-body .tnl-mgmt__sub {
    color: var(--kv-muted);
}

body.tnl-body .tnl-phead {
    font-family: var(--kv-display);
    color: var(--kv-forest);
    font-weight: 600;
}

body.tnl-body .tnl-phero__band {
    background:
        radial-gradient(250px 160px at 100% 0%, rgba(217, 239, 193, .22), transparent 70%),
        linear-gradient(150deg, var(--kv-forest), #1b5a3a);
}

body.tnl-body .tnl-pstat b {
    font-family: var(--kv-display);
    color: var(--kv-forest);
}

body.tnl-body .tnl-pstat__label {
    color: var(--kv-muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.tnl-body .tnl-empty p {
    color: var(--kv-muted);
}

body.tnl-body .tnl-teamhero,
body.tnl-body .tnl-tm-hero {
    border-radius: 20px;
    overflow: hidden;
}

body.tnl-body .tnl-copy__link {
    background: var(--kv-mint-2);
    border: 1px dashed #c9dcc0;
    border-radius: 12px;
    color: var(--kv-green);
}

body.tnl-body .tnl-rules-card,
body.tnl-body .tnl-copy {
    background: var(--kv-paper);
}

body.tnl-body .tnl-steps li {
    color: var(--kv-ink-2);
}

body.tnl-body .tnl-toast,
body.tnl-body #toast,
body.tnl-body .toast {
    border-radius: 13px;
}

/* telas antigas sem .tnl-app */
body.tnl-legacy {
    background: var(--kv-cream);
    font-family: var(--kv-sans);
}

/* ---------- correcao de heranca ----------
   body.kv-body a / body.tnl-body a tem especificidade maior que .kv-btn,
   .kv-btn--cream e .kv-btn--ghost. Sem estas regras os botoes-link herdam
   a cor do texto do container e ficam ilegiveis sobre o verde. */
body.kv-body a.kv-btn,
body.tnl-body a.kv-btn {
    color: var(--kv-paper);
}

body.kv-body a.kv-btn--cream,
body.kv-body a.kv-btn--ghost,
body.tnl-body a.kv-btn--cream,
body.tnl-body a.kv-btn--ghost {
    color: var(--kv-forest);
}

body.kv-body a.kv-btn--leaf,
body.tnl-body a.kv-btn--leaf {
    color: var(--kv-forest);
}

body.kv-body a.kv-plan__btn,
body.tnl-body a.kv-plan__btn {
    color: var(--kv-paper);
}

body.kv-body .kv-plan--b a.kv-plan__btn,
body.tnl-body .kv-plan--b a.kv-plan__btn {
    color: #2b2214;
}

body.kv-body a.kv-level__claim,
body.tnl-body a.kv-level__claim {
    color: var(--kv-paper);
}

body.kv-body a.kv-level__claim.is-done,
body.tnl-body a.kv-level__claim.is-done {
    color: var(--kv-muted);
}

body.kv-body .kv-nav__item,
body.tnl-body .kv-nav__item {
    color: var(--kv-muted);
}

body.kv-body .kv-nav__item.is-active,
body.tnl-body .kv-nav__item.is-active {
    color: var(--kv-forest);
}

/* ---------- nav inferior: pilula cheia no item ativo ---------- */

body.kv-body .kv-nav,
body.tnl-body .kv-nav {
    background: #f7fbee;
    border-top-color: #e1ecd0;
}

body.kv-body .kv-nav__item,
body.tnl-body .kv-nav__item {
    gap: 3px;
    font-size: 8.4px;
    color: #8a9a86;
}

body.kv-body .kv-nav__item svg,
body.tnl-body .kv-nav__item svg {
    width: 21px;
    height: 21px;
}

body.kv-body .kv-nav__item.is-active,
body.tnl-body .kv-nav__item.is-active {
    background: linear-gradient(180deg, #38995a, #1c6f40);
    color: #ffffff;
    box-shadow: 0 6px 14px rgba(28, 111, 64, .3);
}

body.kv-body .kv-nav__item.is-active::after,
body.tnl-body .kv-nav__item.is-active::after {
    display: none;
}
