:root {
    --bg: #07050c;
    --bg-2: #0d0815;
    --panel: rgba(20, 14, 31, .82);
    --panel-strong: #15101f;
    --border: rgba(168, 85, 247, .22);
    --border-strong: rgba(168, 85, 247, .48);
    --text: #ffffff;
    --muted: #a9a0ba;
    --muted-2: #71687f;
    --purple: #8b5cf6;
    --purple-2: #c084fc;
    --success: #22c55e;
    --danger: #fb7185;
    --warning: #f59e0b;
    --shadow: 0 24px 70px rgba(0, 0, 0, .42);
    --radius: 24px;
    --radius-sm: 14px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    min-height: 100vh;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at 12% 8%, rgba(124, 58, 237, .32), transparent 34%),
        radial-gradient(circle at 88% 18%, rgba(192, 132, 252, .16), transparent 28%),
        linear-gradient(135deg, #050308 0%, #10091a 48%, #06040a 100%);
}

a { color: inherit; text-decoration: none; }

button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.app-shell {
    min-height: 100vh;
    display: flex;
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 286px;
    padding: 24px;
    border-right: 1px solid var(--border);
    background: rgba(7, 5, 12, .76);
    backdrop-filter: blur(20px);
    z-index: 50;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.brand-mark {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    color: #fff;
    font-weight: 950;
    letter-spacing: -.06em;
    background: linear-gradient(145deg, #7c3aed, #111827 58%, #c084fc);
    box-shadow: 0 16px 34px rgba(124, 58, 237, .38);
}

.brand strong { display: block; letter-spacing: -.04em; }
.brand small { color: var(--muted); display: block; margin-top: 2px; }
.brand-large .brand-mark { width: 58px; height: 58px; border-radius: 20px; font-size: 1.25rem; }
.brand-large strong { font-size: 1.1rem; }

.nav-menu { display: grid; gap: 8px; }

.nav-menu a,
.logout-link {
    padding: 13px 14px;
    border: 1px solid transparent;
    border-radius: 16px;
    color: var(--muted);
    transition: .2s ease;
}

.nav-menu a:hover,
.nav-menu a.active {
    color: #fff;
    background: rgba(139, 92, 246, .13);
    border-color: var(--border);
}

.sidebar-card {
    margin-top: auto;
    padding: 18px;
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(139, 92, 246, .18), rgba(255, 255, 255, .04));
    border: 1px solid var(--border);
}

.sidebar-card span { color: var(--muted); display: block; font-size: .82rem; margin-bottom: 7px; }
.sidebar-card strong { line-height: 1.35; }
.logout-link { color: #fda4af; }

.main-content {
    width: 100%;
    margin-left: 286px;
    padding: 24px;
}

.auth-body .main-content { margin-left: 0; display: grid; place-items: center; padding: 24px; }
.auth-body .app-shell { display: block; }

.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 24px;
}

.topbar h1 {
    margin: 4px 0 0;
    font-size: clamp(1.7rem, 3vw, 2.6rem);
    letter-spacing: -.06em;
}

.topbar small, .eyebrow {
    color: var(--purple-2);
    text-transform: uppercase;
    letter-spacing: .18em;
    font-size: .72rem;
    font-weight: 800;
}

.menu-button {
    display: none;
    width: 44px;
    height: 44px;
    border: 1px solid var(--border);
    border-radius: 14px;
    color: #fff;
    background: rgba(255, 255, 255, .06);
}

.user-pill {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 13px 10px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid var(--border);
}

.user-pill span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--purple);
    font-weight: 900;
}

.auth-wrapper {
    width: min(1120px, 100%);
    display: grid;
    grid-template-columns: 1.12fr .88fr;
    gap: 28px;
    align-items: stretch;
}

.auth-hero,
.auth-card,
.panel,
.hero-card,
.stat-card {
    border: 1px solid var(--border);
    background: var(--panel);
    backdrop-filter: blur(18px);
    box-shadow: var(--shadow);
}

.auth-hero {
    min-height: 620px;
    border-radius: 34px;
    padding: clamp(28px, 5vw, 54px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
}

.auth-hero::after {
    content: '';
    position: absolute;
    right: -120px;
    bottom: -160px;
    width: 430px;
    height: 430px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(168, 85, 247, .32), transparent 64%);
}

.auth-hero h1 {
    max-width: 720px;
    font-size: clamp(2.35rem, 6vw, 5rem);
    line-height: .92;
    letter-spacing: -.085em;
    margin: 80px 0 18px;
}

.auth-hero p {
    max-width: 570px;
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.7;
}

.auth-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    position: relative;
    z-index: 1;
}

.auth-stats div {
    padding: 18px;
    border-radius: 20px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .08);
}

.auth-stats strong { display: block; font-size: 1.5rem; }
.auth-stats span { color: var(--muted); font-size: .88rem; }

.auth-card {
    border-radius: 34px;
    padding: clamp(24px, 4vw, 42px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.auth-card h2,
.panel h3,
.hero-card h2 {
    margin: 8px 0 18px;
    letter-spacing: -.05em;
}

.auth-card h2 { font-size: 2.1rem; }

.stack-form { display: grid; gap: 16px; }

label { color: #ded8e9; font-weight: 700; font-size: .92rem; }

input, select, textarea {
    width: 100%;
    margin-top: 8px;
    border: 1px solid rgba(255, 255, 255, .10);
    background: rgba(255, 255, 255, .055);
    color: #fff;
    border-radius: 16px;
    padding: 14px 15px;
    outline: none;
    transition: .2s ease;
}

select option { color: #111; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--purple); box-shadow: 0 0 0 4px rgba(139, 92, 246, .13); }
input:disabled { opacity: .55; }

.btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 16px;
    padding: 14px 18px;
    font-weight: 900;
    transition: .2s ease;
}

.btn:hover { transform: translateY(-1px); }
.btn-primary { color: #fff; background: linear-gradient(135deg, #7c3aed, #a855f7); box-shadow: 0 18px 38px rgba(124, 58, 237, .36); }
.btn-secondary { color: #fff; background: rgba(255, 255, 255, .08); border: 1px solid var(--border); }
.auth-switch { color: var(--muted); text-align: center; margin-top: 12px; }
.auth-switch a { color: var(--purple-2); font-weight: 900; }

.alert {
    margin-bottom: 18px;
    border-radius: 18px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, .06);
}
.alert-success { border-color: rgba(34, 197, 94, .28); color: #bbf7d0; }
.alert-error { border-color: rgba(251, 113, 133, .32); color: #fecdd3; }

.hero-card {
    border-radius: 34px;
    padding: clamp(24px, 4vw, 42px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: end;
    margin-bottom: 22px;
    overflow: hidden;
    position: relative;
}

.hero-card::before {
    content: '';
    position: absolute;
    inset: -1px;
    background: radial-gradient(circle at 85% 30%, rgba(139, 92, 246, .3), transparent 34%);
    pointer-events: none;
}

.hero-card > * { position: relative; z-index: 1; }
.hero-card h2 { font-size: clamp(2rem, 4vw, 4rem); line-height: .96; max-width: 760px; }
.hero-card p { color: var(--muted); max-width: 630px; line-height: 1.7; }

.hero-balance {
    min-width: 280px;
    border: 1px solid var(--border-strong);
    background: rgba(7, 5, 12, .58);
    border-radius: 28px;
    padding: 24px;
}
.hero-balance small, .hero-balance span { color: var(--muted); display: block; }
.hero-balance strong { display: block; font-size: clamp(2rem, 3vw, 3.2rem); letter-spacing: -.08em; margin: 7px 0; }

.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.stat-card, .panel {
    border-radius: var(--radius);
    padding: 22px;
}

.stat-card span { color: var(--muted); font-weight: 700; }
.stat-card strong { display: block; font-size: clamp(1.5rem, 2.4vw, 2.25rem); letter-spacing: -.06em; margin: 10px 0 5px; }
.stat-card small { color: var(--muted-2); line-height: 1.5; }
.stat-card.glow { border-color: var(--border-strong); background: linear-gradient(145deg, rgba(139, 92, 246, .18), rgba(20, 14, 31, .84)); }
.positive strong, .income { color: #86efac; }
.negative strong, .expense { color: #fda4af; }

.content-grid { display: grid; gap: 16px; margin-bottom: 16px; }
.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-layout { grid-template-columns: .88fr 1.12fr; align-items: start; }

.panel-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 18px;
}
.panel-header h3 { margin-bottom: 0; font-size: 1.35rem; }
.panel-header a { color: var(--purple-2); font-weight: 900; font-size: .9rem; }

.pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: rgba(139, 92, 246, .13);
    color: #fff;
    padding: 7px 11px;
    font-size: .8rem;
    font-weight: 900;
}
.pill.income { border-color: rgba(34, 197, 94, .28); background: rgba(34, 197, 94, .1); color: #bbf7d0; }
.pill.expense { border-color: rgba(251, 113, 133, .28); background: rgba(251, 113, 133, .1); color: #fecdd3; }

.progress-bar {
    height: 12px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .07);
}
.progress-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #7c3aed, #c084fc);
    box-shadow: 0 0 24px rgba(192, 132, 252, .42);
}
.progress-bar.small { height: 8px; margin-top: 10px; }

.scale-track {
    display: flex;
    justify-content: space-between;
    color: var(--muted-2);
    font-size: .75rem;
    margin: 12px 0 20px;
}
.muted { color: var(--muted); line-height: 1.6; }
.empty { color: var(--muted); line-height: 1.7; }
.empty-panel { text-align: center; }

.expense-list, .transaction-list, .goal-list { display: grid; gap: 12px; }
.expense-item div:first-child { display: flex; justify-content: space-between; margin-bottom: 8px; gap: 14px; }
.expense-item span { color: var(--muted); }
.mini-bar { height: 8px; background: rgba(255,255,255,.07); border-radius: 999px; overflow: hidden; }
.mini-bar span { display: block; height: 100%; background: linear-gradient(90deg, #fb7185, #f59e0b); border-radius: inherit; }

.transaction-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .045);
    border: 1px solid rgba(255, 255, 255, .07);
}
.transaction-row strong { display: block; }
.transaction-row small { display: block; color: var(--muted); margin-top: 3px; }
.tx-icon {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    font-weight: 950;
}
.tx-icon.income { background: rgba(34, 197, 94, .15); color: #86efac; }
.tx-icon.expense { background: rgba(251, 113, 133, .15); color: #fda4af; }

.goal-card-mini {
    padding: 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .045);
    border: 1px solid rgba(255, 255, 255, .07);
}
.goal-card-mini div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.goal-card-mini span { color: var(--muted); }

.input-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.checkbox-line { display: flex; align-items: center; gap: 10px; }
.checkbox-line input { width: auto; margin: 0; }

.segmented {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    padding: 6px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .055);
    border: 1px solid rgba(255, 255, 255, .08);
}
.segmented label { margin: 0; }
.segmented input { display: none; }
.segmented span {
    display: grid;
    place-items: center;
    padding: 12px;
    border-radius: 14px;
    color: var(--muted);
    transition: .2s ease;
}
.segmented input:checked + span { background: var(--purple); color: #fff; box-shadow: 0 12px 28px rgba(124, 58, 237, .26); }

.summary-stack { display: grid; gap: 12px; margin-bottom: 18px; }
.summary-stack div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .045);
    border: 1px solid rgba(255, 255, 255, .07);
}
.summary-stack span { color: var(--muted); }

.filter-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.filter-tabs a {
    padding: 10px 13px;
    border-radius: 999px;
    border: 1px solid var(--border);
    color: var(--muted);
}
.filter-tabs a.active { background: rgba(139, 92, 246, .16); color: #fff; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { text-align: left; padding: 14px 10px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
th { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; }
td small { display: block; color: var(--muted); margin-top: 5px; }
.icon-button {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    border: 1px solid rgba(251, 113, 133, .25);
    color: #fecdd3;
    background: rgba(251, 113, 133, .1);
    font-weight: 950;
}

.goals-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.goal-card.main-goal { border-color: var(--border-strong); background: linear-gradient(145deg, rgba(139, 92, 246, .16), rgba(20, 14, 31, .86)); }
.goal-numbers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0;
}
.goal-numbers div {
    padding: 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .045);
    border: 1px solid rgba(255, 255, 255, .07);
}
.goal-numbers span { display: block; color: var(--muted); font-size: .8rem; margin-bottom: 6px; }
.inline-update { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 18px; }
.inline-update input { margin: 0; }
.card-actions { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.text-button {
    border: 0;
    background: transparent;
    color: var(--purple-2);
    font-weight: 900;
    padding: 0;
}
.text-button.danger { color: #fda4af; }

.mission-panel p { color: var(--muted); line-height: 1.7; }
.mission-list { display: grid; gap: 10px; margin-top: 18px; }
.mission-list span {
    padding: 13px;
    border-radius: 16px;
    background: rgba(255, 255, 255, .045);
    border: 1px solid rgba(255, 255, 255, .07);
    color: #ded8e9;
}

.roadmap-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}
.roadmap-grid div {
    padding: 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.07);
}
.roadmap-grid strong { display: block; margin-bottom: 6px; }
.roadmap-grid span { color: var(--muted); line-height: 1.5; }

@media (max-width: 1060px) {
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .auth-wrapper { grid-template-columns: 1fr; }
    .auth-hero { min-height: auto; }
    .roadmap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
    .sidebar {
        transform: translateX(-105%);
        transition: .25s ease;
        box-shadow: var(--shadow);
    }
    body.menu-open .sidebar { transform: translateX(0); }
    .main-content { margin-left: 0; padding: 18px; padding-bottom: 42px; }
    .menu-button { display: grid; place-items: center; }
    .topbar { align-items: flex-start; }
    .user-pill strong { display: none; }
    .hero-card, .two-columns, .form-layout, .goals-grid { grid-template-columns: 1fr; }
    .hero-balance { min-width: 0; }
}

@media (max-width: 620px) {
    .main-content { padding: 14px; }
    .auth-body .main-content { padding: 14px; }
    .auth-card, .auth-hero, .panel, .hero-card, .stat-card { border-radius: 22px; padding: 18px; }
    .auth-stats, .stats-grid, .input-grid, .goal-numbers, .roadmap-grid { grid-template-columns: 1fr; }
    .auth-hero h1 { margin-top: 42px; }
    .topbar h1 { font-size: 1.6rem; }
    .hero-card h2 { font-size: 2rem; }
    .transaction-row { grid-template-columns: auto minmax(0, 1fr); }
    .transaction-row b { grid-column: 2; }
    .inline-update { grid-template-columns: 1fr; }
}

/* SaaS/Admin v2 */
.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}
.plan-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 11px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.06);
    color: #fff;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}
.plan-badge.trial { border-color: rgba(192,132,252,.35); background: rgba(124,58,237,.17); color: #e9d5ff; }
.plan-badge.paid { border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.14); color: #bbf7d0; }
.plan-badge.expired { border-color: rgba(251,191,36,.35); background: rgba(251,191,36,.12); color: #fde68a; }
.plan-badge.blocked { border-color: rgba(251,113,133,.35); background: rgba(251,113,133,.12); color: #fecdd3; }
.compact-auth { min-height: 100vh; display: grid; place-items: center; }
.auth-card-wide { max-width: 680px; width: 100%; }
.danger-hero { border-color: rgba(251,113,133,.32); background: radial-gradient(circle at top right, rgba(251,113,133,.16), transparent 36%), linear-gradient(145deg, rgba(20,14,31,.94), rgba(8,6,13,.94)); }
.admin-stats .stat-card strong { font-size: clamp(2rem, 4vw, 3.1rem); }
.compact-form { gap: 10px; }
.tiny { font-size: .82rem; }
.small-btn { padding: 10px 13px; font-size: .82rem; }
.mini-link {
    color: var(--purple-2);
    font-weight: 900;
    white-space: nowrap;
}
.inline-form { display: inline; }
.actions-cell {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
    min-width: 310px;
}
.mini-button {
    border: 1px solid rgba(255,255,255,.11);
    background: rgba(255,255,255,.06);
    color: #eee8ff;
    padding: 7px 9px;
    border-radius: 10px;
    font-weight: 850;
    cursor: pointer;
}
.mini-button:hover { border-color: rgba(192,132,252,.38); }
.mini-button.danger { color: #fecdd3; border-color: rgba(251,113,133,.25); background: rgba(251,113,133,.1); }
.edit-panel { border-color: rgba(192,132,252,.22); }
.stack-form .muted { margin: 0; }
select {
    width: 100%;
    color: #fff;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 16px;
    padding: 14px 14px;
    outline: none;
}
select:focus { border-color: rgba(192,132,252,.55); box-shadow: 0 0 0 3px rgba(124,58,237,.18); }
select option { background: #120d1d; color: #fff; }

@media (max-width: 860px) {
    .topbar-actions { width: 100%; justify-content: space-between; }
    .plan-badge { font-size: .72rem; padding: 7px 9px; }
}

/* SaaS v4 - landing, plans and trial popup */
.landing-body .main-content {
    display: block;
    place-items: initial;
    padding: 0;
}
.landing-shell {
    width: min(1220px, calc(100% - 32px));
    margin: 0 auto;
    padding: 22px 0 56px;
}
.landing-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 0 28px;
}
.landing-top nav {
    display: flex;
    align-items: center;
    gap: 10px;
}
.landing-top nav a {
    color: var(--muted);
    padding: 10px 13px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.03);
    font-weight: 800;
}
.landing-top nav a:hover { color: #fff; border-color: var(--border); }
.landing-hero {
    display: grid;
    grid-template-columns: 1.04fr .96fr;
    gap: 28px;
    align-items: stretch;
    min-height: 560px;
}
.landing-copy,
.phone-preview,
.signup-copy {
    border: 1px solid var(--border);
    border-radius: 34px;
    background: radial-gradient(circle at 15% 12%, rgba(139,92,246,.22), transparent 34%), rgba(12,8,18,.76);
    box-shadow: var(--shadow);
}
.landing-copy {
    padding: clamp(28px, 5vw, 62px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.landing-copy h1 {
    margin: 14px 0 18px;
    font-size: clamp(2.6rem, 6vw, 5.8rem);
    line-height: .92;
    letter-spacing: -.085em;
}
.landing-copy p,
.section-heading p,
.signup-copy p {
    color: var(--muted);
    line-height: 1.7;
    font-size: 1.02rem;
}
.hero-actions,
.modal-actions,
.center-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}
.trust-row,
.mini-proof {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 24px;
}
.trust-row span,
.mini-proof span {
    color: #e9d5ff;
    border: 1px solid rgba(192,132,252,.18);
    background: rgba(124,58,237,.12);
    padding: 9px 12px;
    border-radius: 999px;
    font-weight: 850;
    font-size: .84rem;
}
.phone-preview {
    padding: clamp(18px, 4vw, 38px);
    display: grid;
    align-content: center;
    gap: 16px;
    background: radial-gradient(circle at 70% 0%, rgba(192,132,252,.24), transparent 34%), linear-gradient(145deg, rgba(35,23,55,.9), rgba(8,6,13,.92));
}
.phone-card {
    border: 1px solid rgba(255,255,255,.1);
    background: rgba(255,255,255,.06);
    border-radius: 24px;
    padding: 22px;
}
.phone-card.top { transform: translateX(28px); }
.phone-card small { color: var(--muted); display: block; margin-bottom: 8px; }
.phone-card strong { display: block; font-size: clamp(2rem, 5vw, 3.6rem); letter-spacing: -.07em; }
.phone-card span { color: var(--muted); }
.success-text { color: #86efac; }
.progress {
    height: 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    overflow: hidden;
    margin-top: 14px;
}
.progress span { display: block; height: 100%; background: linear-gradient(90deg, #7c3aed, #c084fc); border-radius: 999px; }
.benefit-grid,
.plan-grid,
.cycle-grid,
.admin-plan-strip {
    display: grid;
    gap: 16px;
}
.benefit-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 18px 0 56px;
}
.benefit-grid article,
.cycle-card,
.reason-box,
.payment-note,
.admin-plan-strip div {
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.045);
    border-radius: 22px;
    padding: 18px;
}
.benefit-grid strong,
.reason-box strong,
.admin-plan-strip strong { display: block; margin-bottom: 8px; }
.benefit-grid span,
.reason-box span,
.admin-plan-strip small { color: var(--muted); line-height: 1.55; }
.section-heading {
    max-width: 820px;
    margin: 0 auto 24px;
    text-align: center;
}
.section-heading.compact { margin-top: 18px; }
.section-heading h2,
.signup-copy h2,
.plans-page h2 {
    margin: 10px 0 10px;
    font-size: clamp(2rem, 4vw, 3.8rem);
    line-height: .98;
    letter-spacing: -.07em;
}
.plans-section,
.cycle-section,
.signup-section,
.plans-page {
    margin-top: 52px;
}
.plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.price-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 24px;
    border-radius: 28px;
    border: 1px solid rgba(255,255,255,.09);
    background: rgba(13,9,20,.82);
    box-shadow: 0 16px 44px rgba(0,0,0,.26);
}
.price-card.featured {
    border-color: rgba(192,132,252,.48);
    background: radial-gradient(circle at top right, rgba(124,58,237,.25), transparent 38%), rgba(17,12,27,.94);
    transform: translateY(-8px);
}
.price-badge {
    align-self: flex-start;
    color: #e9d5ff;
    border: 1px solid rgba(192,132,252,.25);
    background: rgba(124,58,237,.14);
    border-radius: 999px;
    padding: 8px 11px;
    font-size: .78rem;
    font-weight: 950;
}
.price-card h3 { margin: 0; font-size: 1.55rem; letter-spacing: -.04em; }
.price-card p,
.price-card small,
.cycle-card p { color: var(--muted); line-height: 1.55; }
.price-line { display: flex; align-items: flex-end; gap: 8px; margin: 4px 0; }
.price-line strong { font-size: 2.5rem; letter-spacing: -.075em; }
.price-line span { color: var(--muted); padding-bottom: 8px; }
.price-card ul { list-style: none; padding: 0; margin: 4px 0 0; display: grid; gap: 9px; }
.price-card li { color: #eee8ff; }
.price-card li::before { content: '✓'; color: #c084fc; font-weight: 900; margin-right: 8px; }
.price-card .btn { margin-top: auto; }
.cycle-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cycle-card.best { border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.08); }
.cycle-card > span {
    display: inline-flex;
    border-radius: 999px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.09);
    color: #e9d5ff;
    background: rgba(255,255,255,.04);
    font-size: .78rem;
    font-weight: 900;
}
.cycle-card h3 { margin: 14px 0 4px; }
.cycle-card strong { font-size: 2rem; letter-spacing: -.06em; display: block; }
.cycle-card small { color: #c4b5fd; display: block; margin: 5px 0 10px; }
.signup-section {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 22px;
    align-items: stretch;
}
.signup-copy { padding: clamp(22px, 4vw, 44px); display: flex; flex-direction: column; justify-content: center; }
.landing-form { max-width: none; }
.trial-modal {
    position: fixed;
    inset: 0;
    display: none;
    place-items: center;
    padding: 18px;
    background: rgba(0,0,0,.72);
    backdrop-filter: blur(10px);
    z-index: 200;
}
.trial-modal.show { display: grid; }
.trial-modal-card {
    width: min(560px, 100%);
    position: relative;
    border-radius: 30px;
    border: 1px solid rgba(192,132,252,.35);
    background: radial-gradient(circle at top right, rgba(124,58,237,.24), transparent 38%), #100b19;
    box-shadow: var(--shadow);
    padding: 30px;
}
.trial-modal-card h2 { margin: 12px 0; font-size: clamp(2rem, 5vw, 3.2rem); line-height: .95; letter-spacing: -.07em; }
.trial-modal-card p,
.trial-modal-card small { color: var(--muted); line-height: 1.65; }
.modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.06);
    color: #fff;
    font-size: 1.4rem;
}
.cycle-mini-list { display: grid; gap: 8px; margin: 2px 0 8px; }
.cycle-mini {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 8px;
    padding: 11px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.035);
}
.cycle-mini small { grid-column: 1 / -1; color: var(--purple-2); }
.cycle-mini.active { border-color: rgba(192,132,252,.45); background: rgba(124,58,237,.14); }
.payment-note {
    margin-top: 18px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
}
.compact-plans .price-card ul,
.compact-plans .reason-box { display: none; }
.center-actions { justify-content: center; }
.admin-plan-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-plan-strip span { color: var(--purple-2); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 900; display: block; margin-bottom: 7px; }

@media (max-width: 1020px) {
    .landing-hero,
    .signup-section { grid-template-columns: 1fr; min-height: 0; }
    .benefit-grid,
    .plan-grid,
    .cycle-grid,
    .admin-plan-strip { grid-template-columns: 1fr; }
    .price-card.featured { transform: none; }
    .phone-card.top { transform: none; }
}
@media (max-width: 640px) {
    .landing-shell { width: min(100% - 24px, 1220px); padding-top: 12px; }
    .landing-top { align-items: flex-start; }
    .landing-top nav { flex-direction: column; align-items: flex-end; }
    .landing-copy,
    .phone-preview,
    .signup-copy,
    .trial-modal-card { border-radius: 24px; padding: 20px; }
    .landing-copy h1 { font-size: 3rem; }
    .payment-note { flex-direction: column; align-items: stretch; }
    .price-line strong { font-size: 2rem; }
}

/* SaaS v4.2 - escolha separada, páginas compactas e conteúdo recolhível */
.compact-landing .landing-hero.compact-hero {
    min-height: 470px;
    grid-template-columns: 1.15fr .85fr;
}
.compact-hero .landing-copy h1 { font-size: clamp(2.45rem, 5.4vw, 5.15rem); }
.compact-preview { gap: 14px; }
.compact-preview .phone-card { padding: 20px; }
.compact-trust { margin-top: 18px; }
.choice-section { margin-top: 22px; }
.choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.choice-card {
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.045);
    border-radius: 28px;
    padding: 24px;
    box-shadow: 0 18px 48px rgba(0,0,0,.22);
    display: flex;
    flex-direction: column;
    gap: 13px;
}
.choice-card.active,
.choice-card:hover {
    border-color: rgba(192,132,252,.36);
    background: radial-gradient(circle at top right, rgba(124,58,237,.22), transparent 40%), rgba(17,12,27,.88);
}
.choice-card h3 { font-size: clamp(1.45rem, 2.5vw, 2.15rem); letter-spacing: -.055em; margin: 0; }
.choice-card p { color: var(--muted); line-height: 1.6; margin: 0; }
.choice-card .btn { margin-top: auto; align-self: flex-start; }
.compact-signup,
.compact-pay { margin-top: 24px; }
.pay-now-section {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 22px;
    align-items: stretch;
}
.pay-card { max-width: none; }
.pay-card .btn { width: 100%; justify-content: center; margin-top: 10px; }
.btn-ghost {
    background: rgba(255,255,255,.045);
    border-color: rgba(255,255,255,.08);
    color: #eee8ff;
    box-shadow: none;
}
.selected-plan-box {
    border: 1px solid rgba(192,132,252,.18);
    background: rgba(124,58,237,.12);
    border-radius: 20px;
    padding: 16px;
    display: grid;
    gap: 6px;
    margin: 4px 0 10px;
}
.selected-plan-box small,
.selected-plan-box span { color: var(--muted); }
.selected-plan-box strong { font-size: 1.2rem; letter-spacing: -.035em; }
.compact-info-section { display: grid; gap: 14px; margin-top: 28px; }
.compact-details {
    border: 1px solid rgba(255,255,255,.085);
    background: rgba(255,255,255,.035);
    border-radius: 26px;
    overflow: hidden;
}
.compact-details > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    font-weight: 950;
}
.compact-details > summary::-webkit-details-marker,
.mini-details > summary::-webkit-details-marker { display: none; }
.compact-details > summary span { font-size: 1.1rem; }
.compact-details > summary small { color: var(--purple-2); font-weight: 900; }
.compact-details > summary::after {
    content: '+';
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(124,58,237,.18);
    border: 1px solid rgba(192,132,252,.18);
    color: #fff;
    flex: 0 0 auto;
}
.compact-details[open] > summary::after { content: '–'; }
.compact-details > .plan-grid,
.compact-details > .cycle-grid,
.compact-details > .benefit-grid { padding: 0 18px 18px; }
.compact-plan-grid .price-card { padding: 20px; gap: 12px; }
.compact-plan-grid .price-card.featured { transform: none; }
.mini-details {
    border: 1px solid rgba(255,255,255,.07);
    background: rgba(255,255,255,.032);
    border-radius: 16px;
    overflow: hidden;
}
.mini-details summary {
    list-style: none;
    cursor: pointer;
    padding: 12px 14px;
    color: #e9d5ff;
    font-weight: 900;
    display: flex;
    justify-content: space-between;
    gap: 12px;
}
.mini-details summary::after { content: '+'; color: var(--purple-2); }
.mini-details[open] summary::after { content: '–'; }
.mini-details ul,
.mini-details p { padding: 0 14px 14px; margin: 0; }
.compact-cycle-grid .cycle-card { padding: 18px; }
.compact-benefits { margin: 0; }
.compact-modal-card h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); }
.split-actions .btn { flex: 1 1 210px; justify-content: center; }
.compact-plans-page { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 34px 0 56px; }
.plans-choice-grid { margin-bottom: 18px; }
.selected-payment-card { margin-bottom: 18px; }

@media (max-width: 1020px) {
    .compact-landing .landing-hero.compact-hero,
    .pay-now-section,
    .choice-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .compact-details > summary { align-items: flex-start; padding: 17px; }
    .compact-details > summary small { display: none; }
    .choice-card { border-radius: 22px; padding: 19px; }
    .compact-hero .landing-copy h1 { font-size: 2.8rem; }
    .pay-now-section { gap: 14px; }
}

/* SaaS v4.3 - cadastro/login mais visual, menos texto e foco em conversão */
.conversion-body .main-content,
.login-conversion-body .main-content {
    display: block;
    padding: 0;
}
.conversion-shell,
.login-conversion-shell {
    width: min(1260px, calc(100% - 32px));
    margin: 0 auto;
    padding: 20px 0 54px;
}
.conversion-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 0 22px;
}
.btn-small {
    padding: 11px 16px;
    min-height: auto;
}
.conversion-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(380px, .72fr);
    gap: 22px;
    align-items: stretch;
}
.visual-stage,
.conversion-panel,
.login-visual,
.lean-login-card {
    border: 1px solid var(--border);
    background: rgba(13, 9, 20, .76);
    box-shadow: var(--shadow);
    backdrop-filter: blur(18px);
}
.visual-stage {
    min-height: 690px;
    position: relative;
    overflow: hidden;
    border-radius: 38px;
    padding: clamp(20px, 3vw, 38px);
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 22% 18%, rgba(124, 58, 237, .30), transparent 34%),
        radial-gradient(circle at 80% 16%, rgba(192, 132, 252, .20), transparent 30%),
        linear-gradient(145deg, rgba(31, 21, 48, .96), rgba(7, 5, 12, .94));
}
.visual-stage::before {
    content: '';
    position: absolute;
    inset: 22px;
    border-radius: 34px;
    border: 1px solid rgba(255,255,255,.06);
    pointer-events: none;
}
.visual-stage::after {
    content: 'BL4CK WEALTH';
    position: absolute;
    right: -26px;
    bottom: 24px;
    font-size: clamp(3.4rem, 8vw, 8rem);
    line-height: .82;
    letter-spacing: -.09em;
    font-weight: 950;
    color: rgba(255,255,255,.035);
    pointer-events: none;
}
.visual-glow {
    position: absolute;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(139,92,246,.28), transparent 66%);
    filter: blur(4px);
}
.mock-dashboard {
    position: relative;
    z-index: 1;
    width: min(720px, 92%);
    transform: rotate(-2deg);
    border-radius: 34px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(9, 6, 15, .88);
    box-shadow: 0 38px 100px rgba(0,0,0,.55);
    padding: 24px;
}
.mock-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
}
.mock-head span,
.mock-hero-card small,
.mock-stats small,
.floating-card small {
    color: var(--purple-2);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .72rem;
    font-weight: 950;
}
.mock-head strong { font-size: 1.25rem; letter-spacing: -.045em; }
.mock-hero-card,
.mock-stats div,
.mock-list span,
.floating-card,
.login-mock-card {
    border: 1px solid rgba(255,255,255,.09);
    background: rgba(255,255,255,.055);
}
.mock-hero-card {
    border-radius: 28px;
    padding: 26px;
    background: radial-gradient(circle at top right, rgba(124,58,237,.24), transparent 40%), rgba(255,255,255,.055);
}
.mock-hero-card strong {
    display: block;
    margin: 8px 0 4px;
    font-size: clamp(3.1rem, 7vw, 5.4rem);
    line-height: .88;
    letter-spacing: -.095em;
}
.mock-hero-card span,
.login-mock-card span { color: var(--muted); }
.mock-progress {
    height: 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    overflow: hidden;
    margin-top: 22px;
}
.mock-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #7c3aed, #c084fc, #22c55e);
}
.mock-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.mock-stats div {
    border-radius: 22px;
    padding: 17px;
}
.mock-stats strong {
    display: block;
    margin-top: 7px;
    font-size: 1.45rem;
    letter-spacing: -.06em;
}
.mock-list {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}
.mock-list span {
    border-radius: 18px;
    padding: 13px 15px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
}
.mock-list em {
    color: var(--purple-2);
    font-style: normal;
    font-weight: 900;
}
.floating-card {
    position: absolute;
    z-index: 2;
    border-radius: 22px;
    padding: 16px 18px;
    min-width: 146px;
    box-shadow: 0 20px 54px rgba(0,0,0,.34);
    backdrop-filter: blur(14px);
}
.floating-card strong {
    display: block;
    margin-top: 5px;
    font-size: 1.55rem;
    letter-spacing: -.06em;
}
.floating-card.one { left: 42px; top: 88px; }
.floating-card.two { right: 42px; bottom: 94px; }
.conversion-panel {
    border-radius: 34px;
    padding: clamp(22px, 3.2vw, 38px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.conversion-panel h1,
.lean-login-card h1 {
    margin: 9px 0 10px;
    font-size: clamp(2.15rem, 4.1vw, 4.15rem);
    line-height: .92;
    letter-spacing: -.085em;
}
.conversion-panel > p {
    color: var(--muted);
    line-height: 1.6;
    margin: 0 0 18px;
}
.choice-toggle {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 7px;
    border-radius: 20px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.07);
    margin: 8px 0 16px;
}
.choice-toggle button {
    border: 0;
    color: var(--muted);
    background: transparent;
    border-radius: 15px;
    padding: 12px 10px;
    font-weight: 950;
}
.choice-toggle button.active {
    color: #fff;
    background: linear-gradient(135deg, #7c3aed, #a855f7);
    box-shadow: 0 14px 28px rgba(124,58,237,.26);
}
.choice-panel { display: none; }
.choice-panel.active { display: block; }
.quick-benefits {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 12px;
}
.quick-benefits span {
    color: #e9d5ff;
    font-size: .78rem;
    font-weight: 900;
    padding: 8px 10px;
    border-radius: 999px;
    border: 1px solid rgba(192,132,252,.18);
    background: rgba(124,58,237,.12);
}
.mini-form {
    display: grid;
    gap: 11px;
}
.mini-form label { gap: 6px; }
.mini-form input,
.mini-form select {
    min-height: 48px;
}
.inline-options {
    border-radius: 18px;
    border: 1px solid rgba(255,255,255,.075);
    background: rgba(255,255,255,.032);
    overflow: hidden;
}
.inline-options summary {
    list-style: none;
    cursor: pointer;
    padding: 13px 14px;
    color: #e9d5ff;
    font-weight: 950;
    display: flex;
    justify-content: space-between;
}
.inline-options summary::-webkit-details-marker { display: none; }
.inline-options summary::after { content: '+'; color: var(--purple-2); }
.inline-options[open] summary::after { content: '–'; }
.inline-options .input-grid { padding: 0 13px 13px; }
.compact-link { margin-top: 14px; }
.lean-info-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.lean-info-row details {
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.035);
    border-radius: 24px;
    overflow: hidden;
}
.lean-info-row summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 20px;
    font-weight: 950;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.lean-info-row summary::-webkit-details-marker { display: none; }
.lean-info-row summary::after {
    content: '+';
    color: var(--purple-2);
    font-size: 1.1rem;
}
.lean-info-row details[open] summary::after { content: '–'; }
.lean-plan-grid,
.lean-cycle-grid,
.faq-mini {
    display: grid;
    gap: 10px;
    padding: 0 14px 14px;
}
.lean-plan,
.lean-cycle-grid article,
.faq-mini p {
    border: 1px solid rgba(255,255,255,.07);
    background: rgba(255,255,255,.035);
    border-radius: 18px;
    padding: 14px;
    margin: 0;
}
.lean-plan.featured { border-color: rgba(192,132,252,.35); background: rgba(124,58,237,.10); }
.lean-plan span,
.lean-cycle-grid span {
    color: var(--purple-2);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .7rem;
    font-weight: 950;
}
.lean-plan h3,
.lean-cycle-grid h3 { margin: 8px 0 6px; }
.lean-plan strong,
.lean-cycle-grid strong { display: block; font-size: 1.55rem; letter-spacing: -.06em; }
.lean-plan small { color: var(--muted); font-size: .9rem; }
.lean-plan p,
.lean-cycle-grid p,
.faq-mini p { color: var(--muted); line-height: 1.55; }
.lean-plan ul { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.lean-plan li { color: #eee8ff; font-size: .92rem; }
.lean-plan li::before { content: '✓'; color: var(--purple-2); font-weight: 950; margin-right: 7px; }
.login-conversion-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(360px, .72fr);
    gap: 22px;
    align-items: stretch;
    padding-top: 24px;
    padding-bottom: 24px;
}
.login-visual {
    min-height: calc(100vh - 48px);
    border-radius: 38px;
    padding: clamp(24px, 4vw, 48px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background:
        radial-gradient(circle at 28% 24%, rgba(124, 58, 237, .34), transparent 32%),
        linear-gradient(145deg, rgba(34, 23, 54, .92), rgba(7, 5, 12, .96));
    overflow: hidden;
    position: relative;
}
.login-visual::after {
    content: 'WEALTH';
    position: absolute;
    left: 36px;
    bottom: 12px;
    font-size: clamp(4.8rem, 13vw, 13rem);
    line-height: .8;
    letter-spacing: -.1em;
    color: rgba(255,255,255,.04);
    font-weight: 950;
}
.login-mock-card {
    width: min(560px, 100%);
    border-radius: 30px;
    padding: 28px;
    position: relative;
    z-index: 1;
}
.login-mock-card strong {
    display: block;
    font-size: clamp(2.6rem, 6vw, 5.2rem);
    line-height: .9;
    letter-spacing: -.09em;
    margin: 8px 0 16px;
}
.lean-login-card {
    min-height: calc(100vh - 48px);
    justify-content: center;
}

@media (max-width: 1080px) {
    .conversion-grid,
    .login-conversion-shell {
        grid-template-columns: 1fr;
    }
    .visual-stage,
    .login-visual,
    .lean-login-card {
        min-height: auto;
    }
    .visual-stage { min-height: 560px; }
    .lean-info-row { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .conversion-shell,
    .login-conversion-shell { width: min(100% - 22px, 1260px); padding-top: 12px; }
    .conversion-topbar { align-items: flex-start; }
    .conversion-grid { gap: 14px; }
    .visual-stage { min-height: 430px; border-radius: 26px; padding: 16px; }
    .visual-stage::before { inset: 12px; border-radius: 22px; }
    .mock-dashboard { width: 100%; padding: 15px; border-radius: 24px; transform: none; }
    .mock-head { display: none; }
    .mock-hero-card { border-radius: 20px; padding: 18px; }
    .mock-hero-card strong { font-size: 2.45rem; }
    .mock-stats { grid-template-columns: 1fr; }
    .mock-stats div:nth-child(n+3) { display: none; }
    .mock-list span:nth-child(n+3) { display: none; }
    .floating-card { display: none; }
    .conversion-panel,
    .login-visual,
    .lean-login-card { border-radius: 24px; padding: 20px; }
    .conversion-panel h1,
    .lean-login-card h1 { font-size: 2.45rem; }
    .choice-toggle { grid-template-columns: 1fr; }
    .input-grid { grid-template-columns: 1fr; }
    .login-conversion-shell { gap: 14px; }
    .login-visual { min-height: 320px; }
    .login-mock-card { padding: 20px; }
    .login-mock-card strong { font-size: 2.65rem; }
}

/* v4.4 - Planilha visual + atalhos rápidos */
.quick-actions-top {
    display: flex;
    align-items: center;
    gap: 8px;
}
.quick-actions-top a {
    padding: 10px 13px;
    border-radius: 999px;
    border: 1px solid rgba(192, 132, 252, .22);
    background: rgba(124, 58, 237, .13);
    color: #efe7ff;
    font-weight: 900;
    font-size: .84rem;
    white-space: nowrap;
}
.quick-actions-top a:hover { border-color: var(--border-strong); background: rgba(124, 58, 237, .24); }

.compact-hero {
    border: 1px solid var(--border);
    background: radial-gradient(circle at 84% 16%, rgba(139, 92, 246, .28), transparent 34%), rgba(20, 14, 31, .82);
    box-shadow: var(--shadow);
    border-radius: 30px;
    padding: clamp(22px, 4vw, 42px);
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: center;
    margin-bottom: 18px;
}
.compact-hero h2 {
    margin: 9px 0 10px;
    font-size: clamp(2rem, 4.6vw, 4rem);
    line-height: .95;
    letter-spacing: -.08em;
}
.compact-hero p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
    max-width: 680px;
}
.compact-balance,
.hero-mini-stats {
    min-width: min(380px, 100%);
}
.hero-mini-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.hero-mini-stats div {
    padding: 15px;
    border-radius: 18px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.08);
}
.hero-mini-stats span { display: block; color: var(--muted); font-size: .78rem; margin-bottom: 7px; }
.hero-mini-stats strong { font-size: 1rem; }

.quick-action-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.quick-action-card {
    position: relative;
    min-height: 104px;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.045);
    overflow: hidden;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.quick-action-card:hover { transform: translateY(-2px); border-color: var(--border-strong); background: rgba(124,58,237,.12); }
.quick-action-card span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(139,92,246,.2);
    color: #fff;
    font-weight: 950;
    margin-bottom: 12px;
}
.quick-action-card strong { display: block; font-size: 1.05rem; letter-spacing: -.03em; }
.quick-action-card small { display: block; color: var(--muted); margin-top: 5px; line-height: 1.35; }
.quick-action-card.primary { border-color: rgba(34,197,94,.22); }
.quick-action-card.primary span { background: rgba(34,197,94,.18); color: #bbf7d0; }
.quick-action-card.danger { border-color: rgba(251,113,133,.2); }
.quick-action-card.danger span { background: rgba(251,113,133,.14); color: #fecdd3; }
.sheet-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.compact-stats { margin-bottom: 14px; }
.compact-stats .stat-card { padding: 22px; }
.compact-header { align-items: flex-start; }
.mini-details {
    margin-top: 16px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 16px;
    background: rgba(255,255,255,.035);
    overflow: hidden;
}
.mini-details summary {
    list-style: none;
    padding: 13px 15px;
    color: #eadcff;
    font-weight: 900;
    cursor: pointer;
}
.mini-details summary::-webkit-details-marker { display: none; }
.mini-details summary::after { content: '+'; float: right; color: var(--purple-2); font-weight: 950; }
.mini-details[open] summary::after { content: '−'; }
.mini-details p,
.mini-details .details-grid { padding: 0 15px 15px; margin: 0; }
.details-grid { display: grid; gap: 12px; }

.sheet-entry-panel { scroll-margin-top: 24px; }
.sheet-form {
    display: grid;
    grid-template-columns: 1.15fr 1.5fr 1fr 1fr auto;
    gap: 12px;
    align-items: end;
}
.sheet-form .segmented { align-self: stretch; }
.sheet-form label { margin: 0; }
.sheet-form button { min-height: 50px; }
.sheet-form .sheet-details {
    grid-column: 1 / -1;
    margin-top: 0;
}
.compact-segmented span { padding: 11px 10px; }

.visual-sheet-panel { overflow: hidden; }
.sheet-wrap,
.mini-sheet-wrap {
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    background: rgba(255,255,255,.025);
}
.visual-sheet,
.mini-sheet {
    min-width: 920px;
    border-collapse: separate;
    border-spacing: 0;
}
.visual-sheet th,
.visual-sheet td,
.mini-sheet th,
.mini-sheet td {
    padding: 12px 12px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}
.visual-sheet thead th,
.mini-sheet thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: rgba(16, 11, 24, .96);
}
.visual-sheet tbody tr:hover,
.mini-sheet tbody tr:hover { background: rgba(124,58,237,.07); }
.visual-sheet tfoot th {
    background: rgba(124,58,237,.08);
    color: #fff;
}
.visual-sheet .row-number {
    color: var(--muted);
    font-weight: 900;
    width: 52px;
}
.income-cell { color: #86efac; font-weight: 900; }
.expense-cell { color: #fda4af; font-weight: 900; }
.empty-row td { text-align: center; color: var(--muted); padding: 28px; }
.dashboard-sheet-preview .mini-sheet { min-width: 650px; }
.dashboard-sheet-preview .table-wrap { max-height: 330px; }

.mobile-quick-dock { display: none; }

@media (max-width: 1180px) {
    .quick-actions-top { display: none; }
    .compact-hero { flex-direction: column; align-items: stretch; }
    .quick-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sheet-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sheet-form button { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
    .main-content { padding-bottom: 92px; }
    .topbar-actions .plan-badge { display: none; }
    .hero-mini-stats { grid-template-columns: 1fr; }
    .mobile-quick-dock {
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: 10px;
        z-index: 80;
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 6px;
        padding: 8px;
        border: 1px solid rgba(192,132,252,.24);
        border-radius: 22px;
        background: rgba(7,5,12,.86);
        backdrop-filter: blur(18px);
        box-shadow: 0 18px 50px rgba(0,0,0,.42);
    }
    .mobile-quick-dock a {
        min-height: 44px;
        display: grid;
        place-items: center;
        text-align: center;
        border-radius: 16px;
        color: var(--muted);
        font-size: .74rem;
        font-weight: 900;
    }
    .mobile-quick-dock a.active,
    .mobile-quick-dock a:hover { color: #fff; background: rgba(139,92,246,.14); }
    .mobile-quick-dock .dock-main { background: linear-gradient(135deg, #7c3aed, #c084fc); color: #fff; box-shadow: 0 10px 25px rgba(124,58,237,.35); }
}

@media (max-width: 640px) {
    .compact-hero { border-radius: 24px; padding: 20px; }
    .compact-hero h2 { font-size: 2.45rem; }
    .quick-action-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .quick-action-card { min-height: 92px; padding: 14px; border-radius: 18px; }
    .quick-action-card span { width: 30px; height: 30px; margin-bottom: 9px; }
    .sheet-form { grid-template-columns: 1fr; }
    .sheet-form .segmented { grid-template-columns: 1fr 1fr; }
    .visual-sheet,
    .mini-sheet { min-width: 760px; }
}

/* v4.5 - Notificações */
.nav-badge {
    float: right;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    background: linear-gradient(135deg, #7c3aed, #c084fc);
    color: #fff;
    font-size: .68rem;
    font-weight: 950;
}
.notification-bell {
    position: relative;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 16px;
    background: rgba(255,255,255,.05);
    transition: .2s ease;
}
.notification-bell:hover { transform: translateY(-1px); border-color: var(--border-strong); }
.notification-bell span {
    position: absolute;
    top: -8px;
    right: -8px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--danger);
    color: #fff;
    font-size: .68rem;
    font-weight: 950;
    border: 2px solid var(--bg);
}
.notification-bell.has-unread { box-shadow: 0 0 0 4px rgba(251,113,133,.08); }
.notification-mini-panel {
    margin: 0 0 16px;
    padding: 16px;
    border: 1px solid rgba(192,132,252,.16);
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(124,58,237,.13), rgba(255,255,255,.035));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.notification-mini-panel strong { display: block; font-size: 1.04rem; letter-spacing: -.03em; }
.notification-mini-panel small { display: block; margin-top: 4px; color: var(--muted); }
.notification-hero { margin-bottom: 16px; }
.push-panel .button-row,
.button-row {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 14px;
}
.notification-feature-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.notification-feature-list span {
    padding: 13px 14px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.04);
    color: #eadcff;
    font-weight: 850;
}
.notification-list-page { display: grid; gap: 10px; }
.notification-card {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 15px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    background: rgba(255,255,255,.035);
}
.notification-card.unread {
    border-color: rgba(192,132,252,.28);
    background: linear-gradient(135deg, rgba(124,58,237,.13), rgba(255,255,255,.04));
}
.notification-icon {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: rgba(139,92,246,.13);
    color: var(--purple-2);
    font-size: .82rem;
}
.notification-card strong { display: block; letter-spacing: -.02em; }
.notification-card p { margin: 5px 0 6px; color: var(--muted); line-height: 1.45; }
.notification-card small { color: var(--muted-2); }
.notification-actions {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.notification-template-list { display: grid; gap: 10px; }
.notification-template-list button {
    text-align: left;
    padding: 14px 15px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,.09);
    background: rgba(255,255,255,.04);
    color: #fff;
    font-weight: 850;
}
.notification-template-list button:hover { border-color: var(--border-strong); background: rgba(124,58,237,.13); }
.check-row {
    display: flex !important;
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-weight: 800;
}
.check-row input { width: 18px; height: 18px; accent-color: var(--purple); }
.specific-email-field { display: none; }

@media (max-width: 720px) {
    .notification-mini-panel { align-items: stretch; flex-direction: column; }
    .notification-mini-panel .btn { width: 100%; }
    .notification-feature-list { grid-template-columns: 1fr; }
    .notification-card { grid-template-columns: 28px minmax(0, 1fr); }
    .notification-actions { grid-column: 2; justify-content: flex-start; }
    .notification-bell { width: 40px; height: 40px; border-radius: 14px; }
}

/* v4.6 - ajuste PWA/mobile + notificações reais */
html, body { max-width: 100%; overflow-x: hidden; }
body { min-height: 100dvh; }
.main-content { min-width: 0; }
.table-wrap { -webkit-overflow-scrolling: touch; }
.push-diagnostic {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}
.push-diagnostic span {
    padding: 10px 11px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.035);
    color: var(--muted);
    font-size: .82rem;
    line-height: 1.35;
}
.push-diagnostic strong { color: #fff; }
.danger-text { color: #fecdd3 !important; border-color: rgba(251,113,133,.24) !important; background: rgba(251,113,133,.08) !important; }
button:disabled { opacity: .65; cursor: wait; transform: none !important; }

@media (max-width: 780px) {
    .app-shell { display: block; min-height: 100dvh; }
    .main-content {
        margin-left: 0;
        padding: 12px;
        padding-bottom: calc(94px + env(safe-area-inset-bottom));
    }
    .sidebar {
        width: min(84vw, 300px);
        padding: calc(16px + env(safe-area-inset-top)) 16px 16px;
        gap: 14px;
        overflow-y: auto;
    }
    .brand-mark { width: 38px; height: 38px; border-radius: 13px; }
    .brand small { font-size: .72rem; }
    .nav-menu { gap: 6px; }
    .nav-menu a,
    .logout-link { padding: 11px 12px; border-radius: 14px; font-size: .92rem; }
    .sidebar-card { display: none; }

    .topbar {
        position: sticky;
        top: 0;
        z-index: 40;
        margin: -12px -12px 14px;
        padding: calc(8px + env(safe-area-inset-top)) 12px 9px;
        gap: 9px;
        align-items: center;
        background: rgba(7, 5, 12, .88);
        border-bottom: 1px solid rgba(192,132,252,.14);
        backdrop-filter: blur(18px);
    }
    .topbar > div:not(.topbar-actions) {
        min-width: 0;
        flex: 1 1 auto;
    }
    .topbar small { display: none; }
    .topbar h1 {
        margin: 0;
        font-size: 1.08rem;
        letter-spacing: -.04em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 42vw;
    }
    .menu-button {
        width: 38px;
        height: 38px;
        border-radius: 13px;
        flex: 0 0 auto;
        display: grid;
        place-items: center;
    }
    .topbar-actions {
        width: auto !important;
        flex: 0 0 auto;
        margin-left: 0;
        gap: 6px;
        justify-content: flex-end;
        flex-wrap: nowrap;
    }
    .quick-actions-top,
    .topbar-actions .plan-badge,
    .user-pill strong { display: none !important; }
    .user-pill {
        padding: 3px;
        border-radius: 14px;
        background: rgba(255,255,255,.04);
    }
    .user-pill span { width: 32px; height: 32px; font-size: .82rem; }
    .notification-bell { width: 38px; height: 38px; border-radius: 13px; }

    .compact-hero {
        padding: 16px;
        border-radius: 22px;
        gap: 14px;
        margin-bottom: 12px;
    }
    .compact-hero h2 {
        font-size: 1.72rem;
        line-height: 1;
        letter-spacing: -.06em;
    }
    .compact-hero p { font-size: .9rem; line-height: 1.45; }
    .compact-balance,
    .hero-balance {
        min-width: 0;
        width: 100%;
        border-radius: 20px;
        padding: 16px;
    }
    .hero-balance strong { font-size: 1.85rem; }
    .hero-mini-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
    .hero-mini-stats div { padding: 10px 8px; border-radius: 14px; }
    .hero-mini-stats span { font-size: .68rem; margin-bottom: 4px; }
    .hero-mini-stats strong { font-size: .82rem; letter-spacing: -.02em; }

    .quick-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
    .quick-action-card { min-height: 76px; padding: 12px; border-radius: 16px; }
    .quick-action-card span { width: 28px; height: 28px; border-radius: 10px; margin-bottom: 7px; }
    .quick-action-card strong { font-size: .92rem; }
    .quick-action-card small { display: none; }

    .stats-grid.compact-stats,
    .compact-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px; margin-bottom: 12px; }
    .compact-stats .stat-card,
    .stat-card { padding: 13px; border-radius: 18px; }
    .stat-card span { font-size: .75rem; line-height: 1.25; }
    .stat-card strong { font-size: 1.18rem; margin: 7px 0 3px; }
    .stat-card small { font-size: .72rem; }

    .content-grid,
    .two-columns,
    .form-layout,
    .goals-grid { grid-template-columns: 1fr !important; gap: 10px; margin-bottom: 10px; }
    .panel { padding: 15px; border-radius: 20px; }
    .panel-header { gap: 10px; margin-bottom: 12px; }
    .panel-header h3 { font-size: 1.05rem; }
    .eyebrow { font-size: .64rem; letter-spacing: .14em; }
    .btn { padding: 12px 14px; border-radius: 14px; }

    .notification-mini-panel { padding: 13px; border-radius: 18px; margin-bottom: 10px; }
    .notification-mini-panel small { display: none; }
    .notification-mini-panel .btn { width: auto; }
    .sheet-entry-panel { scroll-margin-top: 76px; }
    .sheet-form { grid-template-columns: 1fr !important; gap: 10px; }
    input, select, textarea { padding: 12px 13px; border-radius: 14px; }
    .visual-sheet,
    .mini-sheet { min-width: 680px; }
    .visual-sheet th,
    .visual-sheet td,
    .mini-sheet th,
    .mini-sheet td { padding: 10px 9px; }
    .push-diagnostic { grid-template-columns: 1fr; }

    .mobile-quick-dock {
        left: max(8px, env(safe-area-inset-left));
        right: max(8px, env(safe-area-inset-right));
        bottom: max(8px, env(safe-area-inset-bottom));
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 4px;
        padding: 7px;
        border-radius: 20px;
    }
    .mobile-quick-dock a {
        min-height: 40px;
        border-radius: 14px;
        font-size: .65rem;
        letter-spacing: -.01em;
    }
}

@media (max-width: 380px) {
    .main-content { padding-left: 10px; padding-right: 10px; }
    .topbar { margin-left: -10px; margin-right: -10px; padding-left: 10px; padding-right: 10px; }
    .topbar h1 { max-width: 38vw; font-size: 1rem; }
    .notification-bell,
    .menu-button { width: 36px; height: 36px; }
    .user-pill span { width: 30px; height: 30px; }
    .compact-hero h2 { font-size: 1.55rem; }
    .stats-grid.compact-stats,
    .compact-stats { grid-template-columns: 1fr 1fr !important; }
    .mobile-quick-dock a { font-size: .6rem; }
}

@media (display-mode: standalone) and (max-width: 780px) {
    .main-content { padding-top: 10px; }
    .topbar { padding-top: calc(10px + env(safe-area-inset-top)); }
}

/* v4.7 - Lembretes financeiros inteligentes */
.today-agenda-grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 18px;
    margin-bottom: 18px;
}
.agenda-card.focus {
    border-color: rgba(168, 85, 247, .45);
    background: linear-gradient(135deg, rgba(124,58,237,.18), rgba(12,10,18,.92));
}
.agenda-list {
    display: grid;
    gap: 10px;
}
.agenda-item {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.08);
}
.agenda-item span {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--muted);
}
.agenda-item strong {
    color: var(--text);
}
.agenda-item small {
    color: var(--muted);
}
.agenda-item.payment_due,
.agenda-item.late {
    border-color: rgba(248,113,113,.28);
    background: rgba(248,113,113,.08);
}
.agenda-item.income_expected {
    border-color: rgba(52,211,153,.25);
    background: rgba(52,211,153,.08);
}
.agenda-item.goal_deadline {
    border-color: rgba(192,132,252,.25);
    background: rgba(192,132,252,.08);
}
.daily-agenda-panel {
    margin-bottom: 18px;
}
.dashboard-agenda-list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.timeline-list {
    display: grid;
    gap: 12px;
}
.timeline-item {
    display: grid;
    grid-template-columns: 58px 1fr;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border-radius: 16px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.07);
}
.timeline-date {
    display: grid;
    place-items: center;
    min-height: 46px;
    border-radius: 14px;
    background: rgba(124,58,237,.18);
    color: #f5f3ff;
    font-weight: 800;
}
.timeline-item span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    margin-top: 3px;
}
.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.pill.pending,
.pill.expected {
    background: rgba(250,204,21,.12);
    color: #fde68a;
    border-color: rgba(250,204,21,.25);
}
.pill.paid,
.pill.received,
.pill.done {
    background: rgba(52,211,153,.12);
    color: #86efac;
    border-color: rgba(52,211,153,.22);
}
.pill.late,
.pill.cancelled {
    background: rgba(248,113,113,.12);
    color: #fecaca;
    border-color: rgba(248,113,113,.22);
}
.compact-form .mini-details label,
.sheet-details label {
    min-width: 0;
}
.reminders-hero .hero-mini-stats strong {
    font-size: 24px;
}

@media (max-width: 980px) {
    .today-agenda-grid,
    .dashboard-agenda-list {
        grid-template-columns: 1fr;
    }
    .quick-actions-top a[href$="reminders.php"] {
        display: none;
    }
}

@media (max-width: 640px) {
    .agenda-item,
    .timeline-item {
        border-radius: 14px;
        padding: 10px;
    }
    .timeline-item {
        grid-template-columns: 48px 1fr;
    }
    .timeline-date {
        min-height: 40px;
        font-size: 13px;
    }
    .table-actions {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* v4.8 - login persistente no app/celular */
.remember-login-row{
    display:flex !important;
    align-items:center;
    gap:10px;
    margin:4px 0 14px;
    font-size:.88rem;
    line-height:1.3;
    color:rgba(255,255,255,.78);
    cursor:pointer;
}
.remember-login-row input{
    width:18px !important;
    height:18px !important;
    min-width:18px;
    accent-color:#8b5cf6;
    margin:0;
}
.remember-login-row span{
    flex:1;
}

/* v4.9 - Vendas & Marketing */
.business-hero {
    align-items: stretch;
}
.business-quick-stats {
    min-width: 320px;
}
.business-stats .stat-card small {
    line-height: 1.35;
}
.business-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.business-form .btn,
.business-form .mini-details {
    grid-column: 1 / -1;
}
.business-scale-list {
    display: grid;
    gap: 10px;
    margin: 16px 0;
}
.business-scale-list div,
.campaign-card,
.business-today-grid div,
.business-dashboard-grid div {
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.045);
    border-radius: 16px;
    padding: 13px;
}
.business-scale-list strong,
.business-scale-list span,
.business-today-grid span,
.business-dashboard-grid span {
    display: block;
}
.business-scale-list span,
.business-today-grid span,
.business-dashboard-grid span,
.campaign-card small {
    color: var(--muted);
    font-size: .82rem;
    margin-top: 4px;
}
.business-campaign-list {
    display: grid;
    gap: 10px;
}
.campaign-card {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
}
.campaign-card > div:last-child {
    text-align: right;
    min-width: 110px;
}
.campaign-card span {
    font-weight: 900;
}
.business-today-grid,
.business-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.business-dashboard-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.business-today-grid strong,
.business-dashboard-grid strong {
    display: block;
    font-size: 1.1rem;
    margin-top: 4px;
}
.business-table td small,
.business-table th small {
    display: block;
    color: var(--muted);
    font-size: .78rem;
    margin-top: 3px;
}
.pill.warning {
    background: rgba(245,158,11,.12);
    color: #fcd34d;
    border-color: rgba(245,158,11,.25);
}
.pill.negative {
    background: rgba(248,113,113,.12);
    color: #fecaca;
    border-color: rgba(248,113,113,.22);
}
.pill.positive {
    background: rgba(52,211,153,.12);
    color: #86efac;
    border-color: rgba(52,211,153,.22);
}
@media (max-width: 980px) {
    .business-form,
    .business-dashboard-grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 640px) {
    .business-quick-stats {
        min-width: 0;
        width: 100%;
    }
    .business-form,
    .business-dashboard-grid,
    .business-today-grid {
        grid-template-columns: 1fr;
    }
    .campaign-card {
        align-items: flex-start;
        flex-direction: column;
    }
    .campaign-card > div:last-child {
        text-align: left;
    }
}

/* =========================================================
   v5.0 - Cadastro/Login Premium de Conversão
   Menos texto, mais visual, mobile-first.
========================================================= */
.register-v5-body,
.login-v5-body {
    background:
        radial-gradient(circle at 18% 12%, rgba(124, 58, 237, .20), transparent 30%),
        radial-gradient(circle at 85% 20%, rgba(255, 255, 255, .08), transparent 26%),
        linear-gradient(135deg, #f2f2f5 0%, #dedee5 45%, #cfd0d8 100%);
    color: #111018;
    min-height: 100vh;
}

.register-v5-body .app-shell,
.login-v5-body .app-shell {
    display: block;
    min-height: 100vh;
}

.register-v5-body .main-content,
.login-v5-body .main-content {
    padding: 0;
    width: 100%;
    min-height: 100vh;
}

.signup-v5,
.login-v5 {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    padding: 22px 0 34px;
}

.signup-v5-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.signup-v5 .brand,
.login-v5 .brand {
    color: #111018;
    text-decoration: none;
}

.signup-v5 .brand-mark,
.login-v5 .brand-mark {
    box-shadow: 0 14px 35px rgba(91, 33, 182, .28);
}

.signup-v5-grid {
    min-height: 690px;
    display: grid;
    grid-template-columns: minmax(0, 1.32fr) minmax(360px, .68fr);
    gap: 22px;
    align-items: stretch;
}

.signup-v5-visual,
.login-v5-visual {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.68);
    border-radius: 34px;
    background:
        linear-gradient(145deg, rgba(18, 18, 28, .94), rgba(43, 39, 56, .88)),
        radial-gradient(circle at center, rgba(124,58,237,.45), transparent 40%);
    box-shadow: 0 28px 90px rgba(35, 31, 48, .28);
    isolation: isolate;
}

.signup-v5-visual::before,
.login-v5-visual::before {
    content: "";
    position: absolute;
    inset: -25%;
    background:
        radial-gradient(circle at 36% 45%, rgba(124,58,237,.44), transparent 25%),
        radial-gradient(circle at 72% 20%, rgba(255,255,255,.16), transparent 22%),
        linear-gradient(115deg, transparent 0 42%, rgba(255,255,255,.06) 42% 43%, transparent 43% 100%);
    z-index: -1;
}

.phone-showcase {
    position: relative;
    height: 100%;
    min-height: 660px;
    display: grid;
    place-items: center;
    padding: 46px;
}

.phone-frame {
    width: min(360px, 82vw);
    min-height: 640px;
    border-radius: 46px;
    padding: 20px;
    background: linear-gradient(180deg, #09070f, #161221);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 40px 100px rgba(0,0,0,.42), inset 0 0 0 8px rgba(255,255,255,.035);
    transform: rotate(-3deg);
}

.phone-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: rgba(255,255,255,.78);
    font-size: .78rem;
    margin-bottom: 18px;
}

.phone-status span,
.phone-status em {
    width: 42px;
    height: 5px;
    border-radius: 999px;
    background: rgba(255,255,255,.16);
}

.phone-card.main {
    border-radius: 28px;
    padding: 24px;
    background: linear-gradient(135deg, rgba(124,58,237,.92), rgba(26, 21, 40, .96));
    color: #fff;
    box-shadow: 0 24px 52px rgba(124,58,237,.28);
}

.phone-card small,
.phone-grid small,
.phone-sheet b,
.visual-pill small,
.login-phone-card small { display: block; opacity: .68; font-size: .78rem; }
.phone-card strong { display: block; font-size: 2.35rem; line-height: 1; margin: 10px 0 6px; }
.phone-card p { margin: 0; opacity: .78; }

.phone-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 14px 0;
}
.phone-grid div,
.phone-sheet,
.phone-chart {
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.07);
    border-radius: 22px;
    padding: 16px;
    color: #fff;
}
.phone-grid strong { display: block; font-size: 1.18rem; margin-top: 5px; }
.phone-chart { height: 150px; display: flex; align-items: end; gap: 13px; }
.phone-chart i { flex: 1; border-radius: 999px 999px 12px 12px; background: linear-gradient(180deg, #a78bfa, #6d28d9); min-height: 32px; }
.phone-sheet { margin-top: 14px; display: grid; gap: 12px; }
.phone-sheet span { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.phone-sheet em { font-style: normal; color: #e9d5ff; font-weight: 800; }

.visual-pill {
    position: absolute;
    width: 138px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.12);
    color: #fff;
    border-radius: 22px;
    padding: 14px 16px;
    backdrop-filter: blur(14px);
    box-shadow: 0 20px 45px rgba(0,0,0,.18);
}
.visual-pill strong { display: block; font-size: 1.35rem; margin-top: 3px; }
.visual-pill.pill-a { left: 9%; top: 18%; }
.visual-pill.pill-b { right: 10%; top: 34%; }
.visual-pill.pill-c { left: 11%; bottom: 18%; }

.signup-v5-card {
    border-radius: 34px;
    padding: 30px;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(255,255,255,.82);
    box-shadow: 0 24px 70px rgba(50,45,66,.18);
    backdrop-filter: blur(18px);
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.signup-v5-card h1,
.login-v5-card h1 {
    color: #111018;
    letter-spacing: -0.055em;
    line-height: .95;
    margin: 10px 0 12px;
}
.signup-v5-card h1 { font-size: clamp(2.35rem, 4.2vw, 4.2rem); }
.login-v5-card h1 { font-size: clamp(2rem, 4vw, 3.4rem); }
.signup-v5-sub,
.login-v5-card p {
    color: #5c5968;
    font-size: 1.02rem;
    line-height: 1.55;
    margin: 0 0 16px;
}

.micro-proof,
.v5-feature-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0 18px;
}
.micro-proof span,
.v5-feature-strip span {
    border-radius: 999px;
    background: #f1eef8;
    color: #4c1d95;
    font-size: .78rem;
    font-weight: 800;
    padding: 8px 10px;
}

.v5-toggle {
    background: #efedf4;
    border: 1px solid rgba(18,16,28,.08);
    border-radius: 18px;
    padding: 5px;
    margin: 5px 0 16px;
}
.v5-toggle button {
    border-radius: 14px;
    color: #5d586c;
}
.v5-toggle button.active {
    background: #111018;
    color: #fff;
    box-shadow: 0 12px 25px rgba(17,16,24,.18);
}

.v5-form { gap: 10px; }
.v5-form label { color: #2c2935; font-size: .8rem; }
.v5-form input,
.v5-form select,
.login-v5-card input {
    background: #fff;
    color: #14121c;
    border: 1px solid rgba(18,16,28,.11);
    border-radius: 16px;
    min-height: 48px;
}
.btn-full { width: 100%; justify-content: center; }
.form-note { display: block; text-align: center; color: #777283; margin-top: 2px; }

.signup-v5-compact {
    margin-top: 18px;
    display: grid;
    gap: 10px;
}
.signup-v5-compact details {
    border-radius: 24px;
    background: rgba(255,255,255,.75);
    border: 1px solid rgba(255,255,255,.82);
    box-shadow: 0 16px 40px rgba(50,45,66,.10);
    overflow: hidden;
}
.signup-v5-compact summary {
    cursor: pointer;
    padding: 18px 20px;
    font-weight: 900;
    color: #111018;
}
.v5-plan-cards,
.v5-cycle-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 0 20px 20px;
}
.v5-plan-card,
.v5-cycle-cards article {
    border-radius: 22px;
    background: #fff;
    border: 1px solid rgba(18,16,28,.08);
    padding: 18px;
}
.v5-plan-card.featured { border-color: rgba(124,58,237,.32); box-shadow: 0 16px 38px rgba(124,58,237,.12); }
.v5-plan-card span,
.v5-cycle-cards span { color: #6d28d9; font-weight: 900; font-size: .74rem; text-transform: uppercase; }
.v5-plan-card h3,
.v5-cycle-cards h3 { color: #111018; margin: 8px 0; }
.v5-plan-card strong,
.v5-cycle-cards strong { color: #111018; font-size: 1.35rem; }
.v5-plan-card small { color: #777283; font-size: .84rem; }
.v5-plan-card p,
.v5-cycle-cards p { color: #625e6d; }
.v5-plan-card ul { padding-left: 18px; color: #514d5f; margin-bottom: 0; }
.v5-feature-strip { padding: 0 20px 20px; margin: 0; }

.login-v5 {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.1fr minmax(340px, .65fr);
    gap: 22px;
    align-items: stretch;
}
.login-v5-visual {
    min-height: 620px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.login-phone-card {
    width: min(430px, 90%);
    border-radius: 34px;
    padding: 28px;
    background: rgba(255,255,255,.11);
    color: #fff;
    border: 1px solid rgba(255,255,255,.16);
    backdrop-filter: blur(16px);
    box-shadow: 0 30px 70px rgba(0,0,0,.25);
}
.login-phone-card strong { display: block; font-size: clamp(2rem, 4vw, 3.7rem); letter-spacing: -.06em; line-height: .95; margin: 8px 0 10px; }
.login-phone-card span { color: rgba(255,255,255,.72); }
.login-v5-card {
    align-self: center;
    border-radius: 34px;
    background: rgba(255,255,255,.80);
    border: 1px solid rgba(255,255,255,.82);
    box-shadow: 0 24px 70px rgba(50,45,66,.18);
    color: #111018;
    backdrop-filter: blur(18px);
}
.login-v5-card label { color: #2c2935; }

@media (max-width: 960px) {
    .signup-v5,
    .login-v5 { width: min(100% - 20px, 680px); padding: 12px 0 24px; }
    .signup-v5-top { margin-bottom: 10px; }
    .signup-v5-grid,
    .login-v5 { grid-template-columns: 1fr; min-height: auto; }
    .signup-v5-visual { min-height: 430px; border-radius: 26px; }
    .phone-showcase { min-height: 430px; padding: 24px; }
    .phone-frame { min-height: 420px; width: min(258px, 76vw); border-radius: 36px; padding: 14px; transform: rotate(-2deg); }
    .phone-card.main { padding: 17px; border-radius: 22px; }
    .phone-card strong { font-size: 1.75rem; }
    .phone-chart { height: 86px; padding: 12px; }
    .phone-sheet { padding: 12px; gap: 8px; }
    .phone-grid { gap: 8px; margin: 9px 0; }
    .phone-grid div { padding: 12px; border-radius: 18px; }
    .visual-pill { width: 112px; padding: 11px 12px; border-radius: 18px; }
    .visual-pill strong { font-size: 1.05rem; }
    .visual-pill.pill-a { left: 4%; top: 15%; }
    .visual-pill.pill-b { right: 4%; top: 35%; }
    .visual-pill.pill-c { left: 6%; bottom: 12%; }
    .signup-v5-card { padding: 22px; border-radius: 26px; }
    .signup-v5-card h1 { font-size: clamp(2.25rem, 12vw, 3.25rem); }
    .signup-v5-sub { font-size: .98rem; }
    .v5-plan-cards,
    .v5-cycle-cards { grid-template-columns: 1fr; padding: 0 14px 14px; }
    .signup-v5-compact summary { padding: 15px 16px; }
    .login-v5-visual { min-height: 280px; border-radius: 26px; padding: 22px; }
    .login-phone-card { width: 100%; padding: 20px; border-radius: 24px; }
    .login-v5-card { border-radius: 26px; }
}

@media (max-width: 520px) {
    .signup-v5-top .brand small,
    .login-v5 .brand small { display: none; }
    .signup-v5-top .btn-small { padding: 10px 12px; }
    .signup-v5-visual { min-height: 360px; }
    .phone-showcase { min-height: 360px; }
    .phone-frame { min-height: 370px; width: 224px; }
    .phone-sheet span:nth-child(3) { display: none; }
    .visual-pill.pill-c { display: none; }
    .signup-v5-card h1 { font-size: 2.45rem; }
    .micro-proof span { font-size: .72rem; padding: 7px 8px; }
    .v5-form input,
    .v5-form select,
    .login-v5-card input { min-height: 46px; }
}

/* v5.1 - Landing, segurança, onboarding e páginas institucionais */
.landing-v51-body .app-shell,.legal-body-v51 .app-shell{background:linear-gradient(135deg,#f4f4f7 0%,#ffffff 45%,#ede9fe 100%);color:#17131f;min-height:100vh}.landing-v51,.legal-v51,.support-v51{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:22px 0 36px}.landing-v51-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.landing-v51-nav nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.landing-v51-nav nav a:not(.btn){color:#5b5568;text-decoration:none;font-weight:800;font-size:.9rem}.landing-v51-hero{display:grid;grid-template-columns:.82fr 1.18fr;gap:28px;align-items:center;min-height:68vh}.landing-v51-copy h1{font-size:clamp(2.15rem,5vw,5.1rem);line-height:.92;letter-spacing:-.07em;margin:12px 0;color:#100d18}.landing-v51-copy p{font-size:clamp(1rem,2vw,1.25rem);color:#5c5668;max-width:640px;line-height:1.55}.landing-v51-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.landing-v51-proof{display:flex;gap:10px;flex-wrap:wrap}.landing-v51-proof span,.v51-audience-grid span,.v5-feature-strip span{border:1px solid rgba(124,58,237,.2);background:rgba(255,255,255,.74);border-radius:999px;padding:9px 12px;font-size:.82rem;font-weight:900;color:#3d354f}.landing-v51-visual{position:relative;min-height:520px}.desktop-mock{position:absolute;inset:30px 0 0 20px;background:#0c0913;border:1px solid rgba(124,58,237,.35);border-radius:30px;box-shadow:0 35px 90px rgba(36,20,70,.24);padding:16px;overflow:hidden}.mock-top{display:flex;gap:7px;margin-bottom:14px}.mock-top span{width:10px;height:10px;border-radius:50%;background:#7c3aed}.mock-dashboard{display:grid;grid-template-columns:150px 1fr;gap:16px;height:calc(100% - 26px)}.mock-dashboard aside{background:#17111f;border-radius:20px;padding:18px;color:#fff;display:flex;flex-direction:column;gap:16px}.mock-dashboard aside b{font-size:1.35rem}.mock-dashboard aside em{font-style:normal;color:#b7adc9;font-size:.84rem}.mock-dashboard main{display:grid;gap:12px}.mock-kpi,.mock-grid2>div,.mock-list,.mock-bars{background:#17111f;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:18px;color:#fff}.mock-kpi strong{font-size:2.1rem;display:block}.mock-kpi i{display:block;height:9px;width:74%;border-radius:999px;background:linear-gradient(90deg,#7c3aed,#c084fc);margin-top:18px}.mock-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mock-grid2 b{display:block;font-size:1.35rem}.mock-bars{display:flex;align-items:end;gap:12px;min-height:120px}.mock-bars i{flex:1;border-radius:999px;background:linear-gradient(180deg,#c084fc,#7c3aed)}.mock-bars i:nth-child(1){height:40%}.mock-bars i:nth-child(2){height:72%}.mock-bars i:nth-child(3){height:55%}.mock-bars i:nth-child(4){height:88%}.mock-bars i:nth-child(5){height:65%}.mock-list{display:grid;gap:10px}.mock-list span{display:flex;justify-content:space-between;color:#cec6df}.mock-list b{color:#fff}.float-card{position:absolute;z-index:3;background:#fff;border:1px solid rgba(124,58,237,.2);border-radius:20px;padding:14px 18px;box-shadow:0 18px 45px rgba(36,20,70,.17)}.float-card small{display:block;color:#6d6678;font-weight:800}.float-card strong{font-size:1.4rem;color:#110d18}.fc1{right:18px;top:50px}.fc2{left:0;bottom:82px}.fc3{right:80px;bottom:12px}.landing-v51-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0}.landing-v51-strip article,.v51-cycle-focus article,.v51-audience-grid span{background:#fff;border:1px solid rgba(17,13,24,.08);border-radius:22px;padding:18px;box-shadow:0 12px 35px rgba(17,13,24,.06)}.landing-v51-strip span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#7c3aed;color:#fff;font-weight:900}.landing-v51-strip strong{display:block;margin:12px 0 4px;color:#15101f}.landing-v51-strip small{color:#6a6374}.landing-v51-section{padding:28px 0}.v51-audience-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.v51-cycle-focus{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.v51-cycle-focus article strong{display:block;font-size:2rem;color:#100d18;margin:8px 0}.v51-cycle-focus .featured{background:#120d1f;color:#fff;transform:translateY(-8px)}.v51-cycle-focus .featured strong,.v51-cycle-focus .featured small{color:#fff}.landing-v51-final{text-align:center;background:#100d18;color:#fff;border-radius:30px;padding:36px 20px;margin-top:20px}.landing-v51-final h2{font-size:clamp(1.8rem,4vw,3.2rem);margin:0 0 8px}.public-footer-v51{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;padding:22px;color:#6a6374;font-size:.86rem}.public-footer-v51 a{color:#5b21b6;font-weight:900;text-decoration:none}.legal-v51 .brand,.support-v51 .brand{margin:0 0 22px}.legal-panel{max-width:860px;margin:0 auto;padding:30px}.legal-panel h1{font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.05em;color:#120d1f}.legal-panel h3{margin-top:24px;color:#17131f}.legal-panel p{color:#5e5868;line-height:1.7}.support-grid-v51{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}.support-card-main h1{font-size:clamp(2rem,5vw,4rem);letter-spacing:-.06em;color:#120d1f}.clean-list{margin:0;padding-left:18px;color:#5e5868;line-height:1.8}.onboarding-v51{display:grid;gap:18px}.onboarding-progress-card{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}.onboarding-progress-card strong{font-size:2.4rem;display:block}.onboarding-grid-v51{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.onboarding-step{display:flex;flex-direction:column;gap:10px;text-decoration:none;background:var(--card-bg,#15101f);border:1px solid rgba(124,58,237,.22);border-radius:22px;padding:18px;color:inherit;min-height:190px}.onboarding-step span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#7c3aed;color:#fff;font-weight:900}.onboarding-step.done{border-color:rgba(34,197,94,.45);background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(124,58,237,.08))}.onboarding-step.done span{background:#16a34a}.onboarding-step strong{font-size:1.05rem}.onboarding-step small{color:var(--muted,#9ca3af);line-height:1.45}.onboarding-final-card,.onboarding-mini-v51{display:flex;justify-content:space-between;align-items:center;gap:16px}.onboarding-mini-v51{margin-bottom:18px}.onboarding-mini-v51 p{margin:6px 0 0;color:var(--muted,#9ca3af)}.onboarding-mini-actions{min-width:260px;display:grid;gap:10px}.terms-row-v51{align-items:flex-start!important}.terms-row-v51 a{color:#7c3aed;font-weight:900}.forgot-v51{min-height:75vh}.v51-plan-details{margin-top:16px}
@media (max-width: 920px){.landing-v51{width:min(100% - 20px,720px);padding-top:12px}.landing-v51-nav{align-items:flex-start}.landing-v51-nav nav a:not(.btn){display:none}.landing-v51-hero{grid-template-columns:1fr;min-height:auto}.landing-v51-copy h1{font-size:clamp(2.4rem,13vw,4.2rem)}.landing-v51-visual{min-height:430px;order:-1}.desktop-mock{inset:0;border-radius:26px}.mock-dashboard{grid-template-columns:92px 1fr;gap:10px}.mock-dashboard aside{padding:12px;border-radius:16px}.mock-dashboard aside em{font-size:.72rem}.mock-kpi,.mock-grid2>div,.mock-list,.mock-bars{padding:12px;border-radius:16px}.mock-kpi strong{font-size:1.55rem}.float-card{padding:10px 12px;border-radius:16px}.fc1{right:4px;top:24px}.fc2{left:4px;bottom:45px}.fc3{right:18px;bottom:-4px}.landing-v51-strip,.v51-cycle-focus,.support-grid-v51{grid-template-columns:1fr}.v51-audience-grid{grid-template-columns:repeat(2,1fr)}.v51-cycle-focus .featured{transform:none}.onboarding-grid-v51{grid-template-columns:1fr}.onboarding-progress-card,.onboarding-final-card,.onboarding-mini-v51{grid-template-columns:1fr;display:grid}.onboarding-mini-actions{min-width:0}.public-footer-v51{padding-bottom:86px}.legal-panel{padding:22px}.landing-v51-section{padding:20px 0}}
@media (max-width: 520px){.landing-v51-body .main-content,.legal-body-v51 .main-content{padding:0}.landing-v51-copy p{font-size:.98rem}.landing-v51-actions .btn{width:100%;justify-content:center}.desktop-mock{padding:10px}.mock-dashboard{grid-template-columns:1fr}.mock-dashboard aside{display:none}.landing-v51-visual{min-height:390px}.mock-bars{min-height:90px}.v51-audience-grid{grid-template-columns:1fr 1fr}.v51-cycle-focus article strong{font-size:1.55rem}.signup-v5-card{padding:18px!important}.login-v5-card{padding:20px!important}}

/* v5.3 - Projetos no módulo Vendas & Marketing */
.project-filter-panel { margin-top: 16px; }
.project-filter-row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.project-chip { display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:999px; border:1px solid rgba(124,58,237,.22); background:rgba(255,255,255,.04); color:var(--text, #fff); text-decoration:none; font-size:.92rem; font-weight:700; }
.project-chip.active, .project-chip:hover { background:linear-gradient(135deg, rgba(124,58,237,.95), rgba(168,85,247,.82)); color:#fff; border-color:transparent; box-shadow:0 12px 30px rgba(124,58,237,.22); }
.project-summary-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:14px; }
.project-summary-card, .project-management-card { border:1px solid rgba(124,58,237,.16); border-radius:20px; padding:16px; background:rgba(255,255,255,.045); text-decoration:none; color:inherit; }
.project-summary-card { display:grid; gap:8px; transition:.2s ease; }
.project-summary-card:hover { transform:translateY(-2px); border-color:rgba(124,58,237,.42); }
.project-summary-card strong, .project-management-card h3 { margin:0; font-size:1rem; }
.project-summary-card span { font-weight:900; font-size:1.15rem; }
.project-summary-card small { color:var(--muted, #9ca3af); line-height:1.4; }
.project-mini-tag { display:inline-flex; width:max-content; padding:5px 9px; border-radius:999px; background:rgba(124,58,237,.14); color:#c4b5fd; font-size:.74rem; font-weight:800; }
.project-management-grid { grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.project-management-card { display:grid; gap:14px; }
.project-management-card.archived { opacity:.68; }
.project-card-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.project-card-head strong { font-size:1.08rem; white-space:nowrap; }
.project-actions-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.project-actions-row form { margin:0; }
.project-actions-row .btn { min-height:38px; padding:9px 12px; font-size:.86rem; }
.compact-project-form { margin-top:12px; }
.dashboard-project-strip { margin-top:14px; display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:10px; }
.dashboard-project-strip a { display:grid; gap:5px; padding:12px; border-radius:16px; background:rgba(255,255,255,.045); border:1px solid rgba(124,58,237,.14); text-decoration:none; color:inherit; }
.dashboard-project-strip a:hover { border-color:rgba(124,58,237,.38); }
.dashboard-project-strip span { font-weight:900; }
.dashboard-project-strip small { color:var(--muted, #9ca3af); }
.warning-panel { border-color:rgba(245,158,11,.35)!important; background:rgba(245,158,11,.08)!important; }

@media (max-width: 720px) {
    .project-filter-row { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; -webkit-overflow-scrolling:touch; }
    .project-chip { white-space:nowrap; flex:0 0 auto; }
    .project-management-grid, .project-summary-grid { grid-template-columns:1fr; }
    .project-card-head { align-items:flex-start; }
    .project-actions-row .btn, .project-actions-row form { flex:1 1 100%; }
    .project-actions-row button, .project-actions-row a { width:100%; justify-content:center; }
}


/* =========================================================
   v5.4 - Conversão Mobile Final
   Objetivo: menos texto, mais visual, mais leve no celular.
========================================================= */
.landing-v54-body .app-shell,
.register-v54-body .app-shell,
.login-v54-body .app-shell {
    background: linear-gradient(135deg, #f5f5f7 0%, #ffffff 48%, #eee9ff 100%);
    color: #15111f;
    min-height: 100vh;
}
.landing-v54,
.signup-v54,
.login-v54,
.plans-v54 {
    width: min(1180px, calc(100% - 28px));
    margin: 0 auto;
    padding: 18px 0 34px;
}
.landing-v54-nav,
.signup-v54-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 18px;
}
.landing-v54-nav nav { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.landing-v54-nav nav a:not(.btn) { color:#5f586c; font-weight:900; font-size:.9rem; text-decoration:none; }
.landing-v54-hero,
.signup-v54-grid,
.login-v54 {
    display: grid;
    grid-template-columns: 1.18fr .82fr;
    gap: 28px;
    align-items: center;
}
.landing-v54-copy h1,
.signup-v54-card h1,
.v54-section-head h1 {
    margin: 10px 0 10px;
    font-size: clamp(2.15rem, 5.6vw, 5rem);
    line-height: .92;
    letter-spacing: -.075em;
    color: #100d18;
}
.signup-v54-card h1 { font-size: clamp(2rem, 4.2vw, 3.7rem); }
.landing-v54-copy p,
.signup-v54-card p,
.v54-section-head p {
    max-width: 560px;
    color: #60596e;
    font-size: clamp(1rem, 1.7vw, 1.22rem);
    line-height: 1.45;
}
.landing-v54-actions { display:flex; gap:12px; flex-wrap:wrap; margin:22px 0; }
.v54-proof { display:flex; gap:8px; flex-wrap:wrap; }
.v54-proof span,
.v54-tags span {
    display:inline-flex; align-items:center; justify-content:center;
    border:1px solid rgba(124,58,237,.18);
    background:rgba(255,255,255,.8);
    border-radius:999px; padding:8px 12px;
    font-weight:950; font-size:.82rem; color:#3c354c;
}
.landing-v54-visual,
.signup-v54-visual,
.login-v54-visual {
    position: relative;
    min-height: 580px;
    border-radius: 38px;
    background:
      radial-gradient(circle at 20% 12%, rgba(124,58,237,.24), transparent 30%),
      radial-gradient(circle at 88% 72%, rgba(192,132,252,.18), transparent 28%),
      linear-gradient(145deg,#15101f,#08060d);
    border:1px solid rgba(124,58,237,.28);
    box-shadow:0 30px 90px rgba(35,20,67,.18);
    overflow:hidden;
}
.signup-v54-visual { min-height: 620px; }
.login-v54-visual { min-height: 610px; display:grid; place-items:center; padding-top:76px; }
.login-v54-visual .brand { position:absolute; left:26px; top:24px; color:#fff; }
.v54-phone {
    width:min(360px, 74%);
    min-height: 520px;
    border-radius: 42px;
    padding: 16px;
    background: linear-gradient(160deg,#0b0812,#1a1026);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 35px 80px rgba(0,0,0,.32);
    position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-3deg);
    color:#fff;
}
.login-v54 .v54-phone.mini { position:relative; left:auto; top:auto; transform:none; width:min(330px,86%); min-height:470px; }
.v54-phone-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; color:#cfc7dd; }
.v54-phone-bar span,
.v54-phone-bar em { width:42px; height:8px; border-radius:99px; background:rgba(255,255,255,.16); }
.v54-balance-card,
.v54-kpi-grid>div,
.v54-sheet-lines,
.v54-chart {
    background:rgba(255,255,255,.075);
    border:1px solid rgba(255,255,255,.1);
    border-radius:24px;
    padding:16px;
}
.v54-balance-card strong { display:block; font-size:2.35rem; letter-spacing:-.05em; margin:4px 0; }
.v54-balance-card small,
.v54-kpi-grid small { color:#bfb4d2; font-weight:850; }
.v54-balance-card span { color:#c084fc; font-weight:900; }
.v54-kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:10px 0; }
.v54-kpi-grid b { display:block; margin-top:4px; font-size:1.25rem; }
.v54-chart { min-height:118px; display:flex; align-items:end; gap:10px; margin-bottom:10px; }
.v54-chart i { flex:1; border-radius:999px; background:linear-gradient(180deg,#c084fc,#7c3aed); }
.v54-sheet-lines { display:grid; gap:10px; }
.v54-sheet-lines span { display:flex; justify-content:space-between; color:#d6cee4; }
.v54-sheet-lines em { font-style:normal; color:#fff; font-weight:900; }
.v54-float {
    position:absolute; z-index:4; background:#fff; color:#120d1f;
    border:1px solid rgba(124,58,237,.18); border-radius:20px;
    padding:13px 16px; box-shadow:0 20px 50px rgba(24,14,48,.2);
}
.v54-float small { display:block; color:#71687f; font-weight:850; }
.v54-float strong { display:block; font-size:1.3rem; letter-spacing:-.04em; }
.v54-float.one { right:9%; top:12%; }
.v54-float.two { left:7%; bottom:15%; }
.v54-float.three { right:12%; bottom:7%; }
.v54-section { margin: 26px 0; }
.v54-steps,
.v54-cycle-cards,
.plans-v54-choice {
    display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
}
.plans-v54-choice { grid-template-columns:repeat(2,1fr); }
.v54-steps article,
.v54-cycle-cards article,
.plans-v54-choice article,
.v54-feature-block,
.v54-details {
    background:#fff;
    border:1px solid rgba(17,13,24,.08);
    border-radius:26px;
    padding:20px;
    box-shadow:0 14px 38px rgba(17,13,24,.06);
}
.v54-steps strong { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:#7c3aed; color:#fff; }
.v54-steps span { display:block; margin:13px 0 4px; font-size:1.15rem; font-weight:950; color:#120d1f; }
.v54-steps small,
.v54-cycle-cards small,
.plans-v54-choice small { color:#686174; line-height:1.45; }
.v54-feature-block { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:18px; }
.v54-feature-block h2,
.v54-section-head h2,
.v54-final h2 { font-size:clamp(1.8rem,4vw,3.3rem); line-height:.98; letter-spacing:-.065em; color:#120d1f; margin:8px 0; }
.v54-tags { display:flex; flex-wrap:wrap; gap:10px; }
.v54-tags.spacious { padding-top:14px; }
.v54-section-head { text-align:center; max-width:760px; margin:0 auto 18px; }
.v54-section-head p { margin:0 auto; font-size:1rem; }
.v54-cycle-cards article strong,
.plans-v54-choice article strong { display:block; font-size:2.05rem; letter-spacing:-.055em; color:#120d1f; margin:8px 0; }
.v54-cycle-cards article a { display:inline-flex; margin-top:14px; font-weight:950; color:#6d28d9; }
.v54-cycle-cards article.featured,
.plans-v54-choice article.featured { background:#120d1f; color:#fff; transform:translateY(-6px); }
.v54-cycle-cards article.featured strong,
.v54-cycle-cards article.featured small,
.plans-v54-choice article.featured strong,
.plans-v54-choice article.featured small { color:#fff; }
.v54-cycle-cards.compact article { padding:16px; }
.v54-cycle-cards.compact article strong { font-size:1.45rem; }
.v54-details { margin-top:16px; }
.v54-details summary { cursor:pointer; font-weight:950; color:#120d1f; }
.v54-final { text-align:center; background:#120d1f; color:#fff; border-radius:32px; padding:34px 20px; margin-top:28px; }
.v54-final h2 { color:#fff; }
.v54-final p { color:#d7cfe4; }
.signup-v54-card,
.login-v54-card {
    background:rgba(255,255,255,.9);
    color:#15111f;
    border:1px solid rgba(17,13,24,.08);
    border-radius:32px;
    padding: clamp(20px, 4vw, 34px);
    box-shadow:0 24px 70px rgba(24,14,48,.12);
}
.v54-form { display:grid; gap:12px; margin-top:14px; }
.v54-form label { color:#3b3448; font-weight:850; }
.v54-form input,
.v54-form select { background:#f7f7fa; color:#14111d; border:1px solid rgba(17,13,24,.12); }
.v54-form input:focus,
.v54-form select:focus { border-color:rgba(124,58,237,.45); box-shadow:0 0 0 4px rgba(124,58,237,.12); outline:none; }
.signup-v54-bottom { display:grid; gap:12px; margin-top:16px; }
.signup-v54-bottom details { background:#fff; border:1px solid rgba(17,13,24,.08); border-radius:22px; padding:16px; color:#15111f; }
.signup-v54-bottom summary { font-weight:950; cursor:pointer; }
.login-v54 { grid-template-columns:1fr 420px; min-height:74vh; }
.login-v54-card h1 { font-size:clamp(2.2rem,5vw,3.4rem); letter-spacing:-.07em; margin:8px 0; color:#120d1f; }
.login-v54-card p { color:#665f73; }
.v54-login-links { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:14px; }
.v54-login-links a { color:#6d28d9; font-weight:950; }
.plans-v54 { max-width:1180px; }
.plans-cycles { margin:18px 0; }

@media (max-width: 980px) {
    .landing-v54,
    .signup-v54,
    .login-v54,
    .plans-v54 { width:min(100% - 20px, 760px); padding-top:12px; }
    .landing-v54-nav { align-items:flex-start; }
    .landing-v54-nav nav a:not(.btn) { display:none; }
    .landing-v54-hero,
    .signup-v54-grid,
    .login-v54 { grid-template-columns:1fr; gap:18px; }
    .landing-v54-visual,
    .signup-v54-visual { order:-1; min-height:430px; border-radius:28px; }
    .login-v54-visual { min-height:390px; border-radius:28px; }
    .v54-phone { min-height:390px; width:min(300px,76%); border-radius:34px; }
    .v54-balance-card strong { font-size:1.75rem; }
    .v54-chart { min-height:82px; }
    .v54-feature-block,
    .v54-steps,
    .v54-cycle-cards,
    .plans-v54-choice { grid-template-columns:1fr; }
    .v54-cycle-cards article.featured,
    .plans-v54-choice article.featured { transform:none; }
    .signup-v54-card h1,
    .landing-v54-copy h1 { font-size:clamp(2.35rem, 12vw, 3.7rem); }
}
@media (max-width: 640px) {
    .landing-v54-body .main-content,
    .register-v54-body .main-content,
    .login-v54-body .main-content { padding:0; }
    .landing-v54-nav .brand small,
    .signup-v54-top .brand small { display:none; }
    .brand-large .brand-mark { width:48px; height:48px; border-radius:17px; }
    .landing-v54-nav nav { gap:8px; }
    .landing-v54-visual,
    .signup-v54-visual { min-height:360px; }
    .login-v54-visual { min-height:330px; }
    .v54-phone { width:280px; min-height:340px; padding:12px; border-radius:30px; }
    .login-v54 .v54-phone.mini { width:260px; min-height:310px; }
    .v54-balance-card,
    .v54-kpi-grid>div,
    .v54-sheet-lines,
    .v54-chart { padding:12px; border-radius:18px; }
    .v54-balance-card strong { font-size:1.45rem; }
    .v54-kpi-grid b { font-size:1rem; }
    .v54-sheet-lines { gap:7px; font-size:.84rem; }
    .v54-float { padding:9px 11px; border-radius:16px; }
    .v54-float strong { font-size:1rem; }
    .v54-float.one { right:3%; top:10%; }
    .v54-float.two { left:3%; bottom:13%; }
    .v54-float.three { right:6%; bottom:3%; }
    .landing-v54-copy p,
    .signup-v54-card p { font-size:.98rem; }
    .landing-v54-actions .btn { width:100%; justify-content:center; }
    .signup-v54-card,
    .login-v54-card { padding:18px; border-radius:26px; }
    .v54-form { gap:10px; }
    .v54-form label { font-size:.9rem; }
    .v54-login-links { display:grid; text-align:center; }
    .v54-steps article,
    .v54-cycle-cards article,
    .plans-v54-choice article,
    .v54-feature-block,
    .v54-details { padding:16px; border-radius:22px; }
    .v54-section { margin:18px 0; }
    .v54-final { border-radius:24px; padding:26px 16px; }
}

/* =========================================================
   v5.5 — UX interna mais visual / mobile app
   ========================================================= */
:root{
    --app-bg-soft:#f4f2f8;
    --app-card:#ffffff;
    --app-ink:#120d1f;
    --app-muted:#6f687b;
    --app-purple:#6d28d9;
    --app-purple-2:#8b5cf6;
    --app-green:#10945d;
    --app-red:#d63b4c;
    --app-amber:#b7791f;
}
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body){
    background:linear-gradient(180deg,#f6f4fb 0%,#efedf5 100%);
    color:var(--app-ink);
}
.main-content{padding-bottom:calc(96px + env(safe-area-inset-bottom));}
.topbar{min-height:72px;padding:14px 22px;border-bottom:1px solid rgba(18,13,31,.06);backdrop-filter:blur(18px);}
.topbar h1{font-size:clamp(1.25rem,2.4vw,1.85rem);letter-spacing:-.04em;line-height:1.05;}
.quick-actions-top a{padding:8px 10px;border-radius:14px;font-size:.82rem;}
.compact-hero{border-radius:30px;background:linear-gradient(135deg,#171022 0%,#211333 54%,#6d28d9 140%);box-shadow:0 24px 70px rgba(23,16,34,.14);overflow:hidden;position:relative;}
.compact-hero:after{content:"";position:absolute;inset:auto -120px -180px auto;width:360px;height:360px;border-radius:999px;background:radial-gradient(circle,rgba(139,92,246,.34),transparent 65%);pointer-events:none;}
.compact-hero h2{font-size:clamp(1.75rem,4vw,3.2rem);letter-spacing:-.07em;line-height:.96;margin:8px 0;}
.compact-hero p{max-width:620px;color:rgba(255,255,255,.76);}
.hero-mini-stats,.hero-balance{position:relative;z-index:2;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);}
.hero-mini-stats div{background:rgba(255,255,255,.08);}
.stats-grid.compact-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.stat-card{border-radius:24px;background:var(--app-card);border:1px solid rgba(18,13,31,.08);box-shadow:0 16px 44px rgba(27,20,45,.07);}
.stat-card span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted);font-weight:900;}
.stat-card strong{font-size:clamp(1.35rem,3vw,2.15rem);letter-spacing:-.06em;color:var(--app-ink);}
.income,.positive strong,.income-cell{color:var(--app-green)!important}.expense,.negative strong,.expense-cell,.danger-text{color:var(--app-red)!important}
.quick-action-grid{gap:12px;}
.quick-action-card{min-height:112px;border-radius:24px;background:#fff;border:1px solid rgba(18,13,31,.08);box-shadow:0 14px 38px rgba(27,20,45,.06);transition:.18s ease;}
.quick-action-card:hover{transform:translateY(-3px);box-shadow:0 20px 52px rgba(27,20,45,.11);}
.quick-action-card span{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:rgba(109,40,217,.1);color:var(--app-purple);font-size:1.35rem;font-weight:950;}
.quick-action-card.primary span{background:rgba(16,148,93,.12);color:var(--app-green)}
.quick-action-card.danger span{background:rgba(214,59,76,.1);color:var(--app-red)}
.quick-action-card small{color:var(--app-muted);line-height:1.25;}
.panel{border-radius:26px;background:#fff;border:1px solid rgba(18,13,31,.08);box-shadow:0 16px 44px rgba(27,20,45,.06);}
.panel-header.compact-header h3{font-size:1.15rem;letter-spacing:-.035em;}
.panel-header a,.text-button,.mini-button{font-weight:900;color:var(--app-purple);}
.progress-bar{background:#ece8f4;border-radius:999px;overflow:hidden;}
.progress-bar span{background:linear-gradient(90deg,var(--app-purple),var(--app-purple-2));border-radius:999px;}
.goal-card.panel{overflow:hidden;}
.goal-card.panel:before{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--app-purple),#c4b5fd);margin:-1px -1px 16px;}
.goal-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.goal-numbers div{background:#f7f5fb;border-radius:18px;padding:12px;}
.goal-numbers span{display:block;font-size:.74rem;color:var(--app-muted);font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.goal-numbers strong{display:block;font-size:1rem;color:var(--app-ink);margin-top:3px;}
.agenda-list,.timeline-list,.notification-list-page{display:grid;gap:10px;}
.agenda-item,.timeline-item,.notification-card,.campaign-card,.project-summary-card,.goal-card-mini{border-radius:20px;background:#f8f6fc;border:1px solid rgba(18,13,31,.06);padding:14px;}
.agenda-item strong,.timeline-item strong,.notification-card strong,.campaign-card strong{font-size:1rem;}
.agenda-item span,.timeline-date{font-size:.75rem;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:var(--app-purple);}
.agenda-item.late{background:#fff3f4;border-color:rgba(214,59,76,.18);}
.business-dashboard-grid,.business-today-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.business-dashboard-grid>div,.business-today-grid>div{background:#f8f6fc;border-radius:20px;padding:14px;border:1px solid rgba(18,13,31,.06);}
.business-dashboard-grid span,.business-today-grid span{display:block;color:var(--app-muted);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.business-dashboard-grid strong,.business-today-grid strong{display:block;font-size:1.25rem;letter-spacing:-.05em;margin-top:3px;color:var(--app-ink);}
.project-filter-row{display:flex;gap:10px;overflow:auto;padding-bottom:6px;scrollbar-width:none;}
.project-filter-row::-webkit-scrollbar{display:none;}
.project-chip{white-space:nowrap;border-radius:999px;padding:10px 14px;background:#f4f1fa;border:1px solid rgba(18,13,31,.08);font-weight:900;color:#322840;}
.project-chip.active{background:var(--app-ink);color:#fff;}
.table-wrap{border-radius:22px;}
.visual-sheet{font-size:.92rem;}
.visual-sheet th{background:#f5f2fa;color:#4d465b;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;}
.visual-sheet td{vertical-align:middle;}
.visual-sheet td small{display:block;color:var(--app-muted);font-size:.74rem;margin-top:2px;}
.pill{border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:950;}
/* FAB */
.fab-actions{position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:1200;display:none;}
.fab-main{width:62px;height:62px;border:none;border-radius:24px;background:linear-gradient(135deg,var(--app-purple),#a855f7);color:#fff;font-size:2.1rem;font-weight:800;box-shadow:0 18px 40px rgba(109,40,217,.34);cursor:pointer;}
.fab-menu{position:absolute;right:0;bottom:76px;display:none;gap:8px;min-width:210px;background:rgba(18,13,31,.95);border:1px solid rgba(255,255,255,.10);border-radius:24px;padding:10px;box-shadow:0 18px 56px rgba(0,0,0,.28);backdrop-filter:blur(18px);}
.fab-actions.open .fab-menu{display:grid;}
.fab-menu a{display:flex;align-items:center;gap:10px;color:#fff;padding:12px;border-radius:16px;font-weight:900;background:rgba(255,255,255,.06);}
.fab-menu span{width:30px;height:30px;border-radius:12px;background:rgba(139,92,246,.22);display:grid;place-items:center;color:#c4b5fd;}
.mobile-more-panel{display:none;}
/* Menos texto técnico em notificações */
.push-diagnostic{display:none;}
.push-panel .mini-details{margin-top:12px;}
.push-panel .mini-details .push-diagnostic{display:grid;}
.notification-feature-list{display:flex;flex-wrap:wrap;gap:9px;}
.notification-feature-list span{background:#f4f1fa;color:#342940;border-radius:999px;padding:9px 12px;font-weight:900;font-size:.86rem;}

@media (max-width: 980px){
    .main-content{padding:14px 14px calc(106px + env(safe-area-inset-bottom));}
    .topbar{position:sticky;top:0;z-index:800;min-height:60px;padding:10px 14px;margin:-14px -14px 14px;border-radius:0 0 22px 22px;background:rgba(250,249,253,.86);}
    .topbar small{font-size:.72rem;}.topbar h1{font-size:1.18rem;}
    .topbar-actions .quick-actions-top,.user-pill strong,.plan-badge{display:none;}
    .notification-bell{width:42px;height:42px;}
    .compact-hero{border-radius:24px;padding:22px;display:grid;gap:14px;}
    .compact-hero h2{font-size:2rem;}
    .compact-hero p{font-size:.94rem;line-height:1.45;}
    .hero-mini-stats,.business-quick-stats{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;}
    .hero-mini-stats div{padding:12px;border-radius:16px;}
    .hero-mini-stats strong{font-size:1.05rem;}
    .stats-grid.compact-stats,.business-dashboard-grid,.business-today-grid{grid-template-columns:repeat(2,1fr);}
    .quick-action-grid{grid-template-columns:repeat(2,1fr);}
    .quick-action-card{min-height:98px;padding:14px;border-radius:22px;}
    .quick-action-card span{width:38px;height:38px;border-radius:14px;font-size:1.15rem;}
    .quick-action-card small{display:none;}
    .content-grid.two-columns,.content-grid.form-layout,.today-agenda-grid{grid-template-columns:1fr;}
    .panel{border-radius:22px;padding:16px;}
    .panel-header{gap:10px;align-items:flex-start;}
    .panel-header.compact-header h3{font-size:1.05rem;}
    .fab-actions{display:block;right:16px;bottom:calc(82px + env(safe-area-inset-bottom));}
    .fab-main{width:58px;height:58px;border-radius:22px;}
    .mobile-quick-dock-v55{position:fixed;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:1100;display:grid!important;grid-template-columns:repeat(5,1fr);gap:4px;background:rgba(255,255,255,.94);border:1px solid rgba(18,13,31,.08);box-shadow:0 -10px 35px rgba(27,20,45,.13);backdrop-filter:blur(18px);border-radius:26px;padding:7px;}
    .mobile-quick-dock-v55 a,.mobile-quick-dock-v55 button{appearance:none;border:0;background:transparent;color:#62586f;text-align:center;text-decoration:none;font-weight:900;font-size:.68rem;padding:7px 3px;border-radius:18px;display:grid;gap:3px;place-items:center;}
    .mobile-quick-dock-v55 span{font-size:1.03rem;line-height:1;}
    .mobile-quick-dock-v55 .active,.mobile-quick-dock-v55 button.active{background:#171022;color:#fff;}
    .mobile-more-panel{position:fixed;left:14px;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:1099;background:rgba(18,13,31,.97);border:1px solid rgba(255,255,255,.08);border-radius:26px;padding:12px;box-shadow:0 22px 60px rgba(0,0,0,.28);backdrop-filter:blur(18px);grid-template-columns:repeat(2,1fr);gap:8px;}
    .mobile-more-panel.open{display:grid;}
    .mobile-more-panel a{color:#fff;background:rgba(255,255,255,.07);border-radius:16px;padding:12px;font-weight:900;text-align:center;}
    .mobile-more-panel a.active{background:rgba(139,92,246,.25);color:#ddd6fe;}
}
@media (max-width: 680px){
    body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body){font-size:15px;}
    .main-content{padding-left:10px;padding-right:10px;}
    .compact-hero{padding:18px;border-radius:22px;margin-bottom:12px;}
    .compact-hero h2{font-size:1.72rem;}
    .compact-hero p{display:none;}
    .eyebrow{font-size:.68rem;letter-spacing:.09em;}
    .stats-grid.compact-stats{gap:9px;}
    .stat-card{border-radius:18px;padding:13px;}
    .stat-card span{font-size:.66rem;}
    .stat-card strong{font-size:1.18rem;}
    .hero-mini-stats{grid-template-columns:1fr 1fr 1fr;}
    .hero-mini-stats span{font-size:.64rem;}
    .quick-action-grid{gap:9px;}
    .quick-action-card{min-height:86px;padding:12px;}
    .quick-action-card strong{font-size:.92rem;}
    .notification-mini-panel{display:none;}
    .goal-numbers{grid-template-columns:1fr;gap:7px;}
    .business-dashboard-grid,.business-today-grid{grid-template-columns:1fr 1fr;gap:8px;}
    .business-dashboard-grid>div,.business-today-grid>div{padding:12px;border-radius:16px;}
    .project-summary-grid,.dashboard-project-strip{display:grid;grid-template-columns:1fr;gap:9px;}
    /* Tabelas viram cards no celular */
    .visual-sheet thead,.visual-sheet tfoot{display:none;}
    .visual-sheet,.visual-sheet tbody,.visual-sheet tr,.visual-sheet td{display:block;width:100%;}
    .visual-sheet tr{background:#fff;border:1px solid rgba(18,13,31,.08);box-shadow:0 12px 32px rgba(27,20,45,.06);border-radius:20px;margin:0 0 12px;padding:12px;}
    .visual-sheet tr.empty-row{padding:0;}
    .visual-sheet tr.empty-row td{text-align:center;display:block;padding:20px!important;}
    .visual-sheet td{border:0!important;padding:7px 2px!important;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:right;}
    .visual-sheet td:before{content:attr(data-label);font-size:.68rem;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted);text-align:left;}
    .visual-sheet td:first-child{border-bottom:1px solid rgba(18,13,31,.06)!important;margin-bottom:4px;padding-bottom:10px!important;}
    .visual-sheet td:first-child:before{content:attr(data-label);}
    .visual-sheet td:last-child{justify-content:flex-end;border-top:1px solid rgba(18,13,31,.06)!important;margin-top:4px;padding-top:10px!important;}
    .visual-sheet td:last-child:before{display:none;}
    .visual-sheet td strong{font-size:.96rem;}
    .visual-sheet td small{font-size:.72rem;}
    .sheet-wrap{overflow:visible;}
    .table-wrap{overflow:visible;background:transparent;border:0;padding:0;}
    .sheet-form{grid-template-columns:1fr;gap:10px;}
    .segmented{padding:5px;border-radius:18px;}
    .segmented label span{padding:10px;border-radius:14px;}
    .details-grid,.input-grid{grid-template-columns:1fr;}
    .timeline-item{display:grid;grid-template-columns:54px 1fr;align-items:center;}
    .notification-card{grid-template-columns:28px 1fr;}
    .notification-actions{grid-column:2;justify-content:flex-start;}
}

/* =========================================================
   v5.6 — Ajuste fino de cores e contraste
   Mais profissional, legível e confortável no mobile/app.
   ========================================================= */
:root{
    --app-bg-soft:#f3f1f7;
    --app-card:#ffffff;
    --app-ink:#15101f;
    --app-ink-2:#272033;
    --app-muted:#5f586c;
    --app-muted-strong:#484154;
    --app-purple:#5b21b6;
    --app-purple-2:#7c3aed;
    --app-purple-soft:#ede9fe;
    --app-green:#0f7a4b;
    --app-green-soft:#dcfce7;
    --app-red:#b4233a;
    --app-red-soft:#ffe4e8;
    --app-amber:#9a5b00;
    --app-amber-soft:#fef3c7;
}

/* Base interna do app: menos apagada, mais nítida */
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body){
    background:linear-gradient(180deg,#f7f5fb 0%,#efedf6 100%);
    color:var(--app-ink);
}
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) small,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .muted,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .stat-card span,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .quick-action-card small,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .business-dashboard-grid span,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .business-today-grid span,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .visual-sheet td small{
    color:var(--app-muted);
}

/* Botões principais com contraste alto */
.btn-primary,
button.btn-primary,
a.btn-primary{
    color:#ffffff!important;
    background:linear-gradient(135deg,#4c1d95 0%,#6d28d9 52%,#7c3aed 100%)!important;
    border:1px solid rgba(76,29,149,.55)!important;
    box-shadow:0 16px 34px rgba(76,29,149,.26)!important;
    text-shadow:0 1px 0 rgba(0,0,0,.18);
}
.btn-primary:hover{filter:brightness(1.04);}

/* Botões secundários antes ficavam claros demais em fundo claro */
.btn-secondary,
button.btn-secondary,
a.btn-secondary,
.btn-ghost,
a.btn-ghost,
button.btn-ghost{
    color:#21182f!important;
    background:#ffffff!important;
    border:1px solid rgba(18,13,31,.16)!important;
    box-shadow:0 10px 24px rgba(27,20,45,.08)!important;
}
.btn-secondary:hover,
.btn-ghost:hover{
    background:#f4f0ff!important;
    border-color:rgba(91,33,182,.32)!important;
    color:#4c1d95!important;
}

/* Botões pequenos, links de ação e chips */
.small-btn,
.btn-small,
.mini-button,
.text-button,
.panel-header a{
    color:#4c1d95!important;
    font-weight:950;
}
.mini-button{
    background:#ffffff!important;
    border:1px solid rgba(18,13,31,.14)!important;
    box-shadow:0 8px 18px rgba(27,20,45,.06)!important;
}
.text-button.danger,
.mini-button.danger{
    color:#b4233a!important;
}

/* Cards de ação: textos mais escuros e ícones mais definidos */
.quick-action-card{
    color:var(--app-ink)!important;
    background:#ffffff!important;
    border-color:rgba(18,13,31,.10)!important;
}
.quick-action-card strong{color:var(--app-ink)!important;}
.quick-action-card span{
    background:#ede9fe!important;
    color:#4c1d95!important;
}
.quick-action-card.primary span{
    background:var(--app-green-soft)!important;
    color:#0f7a4b!important;
}
.quick-action-card.danger span{
    background:var(--app-red-soft)!important;
    color:#b4233a!important;
}

/* Menu mobile: contraste melhor e toque mais premium */
@media (max-width: 980px){
    .topbar{
        background:rgba(255,255,255,.92)!important;
        border-bottom-color:rgba(18,13,31,.10)!important;
        box-shadow:0 10px 28px rgba(27,20,45,.08);
    }
    .topbar h1{color:var(--app-ink)!important;}
    .mobile-quick-dock-v55{
        background:rgba(255,255,255,.96)!important;
        border-color:rgba(18,13,31,.12)!important;
        box-shadow:0 -12px 34px rgba(27,20,45,.15)!important;
    }
    .mobile-quick-dock-v55 a,
    .mobile-quick-dock-v55 button{
        color:#4a4258!important;
    }
    .mobile-quick-dock-v55 .active,
    .mobile-quick-dock-v55 button.active{
        background:#15101f!important;
        color:#ffffff!important;
        box-shadow:0 8px 20px rgba(21,16,31,.20);
    }
    .fab-main{
        background:linear-gradient(135deg,#4c1d95,#6d28d9)!important;
        color:#fff!important;
        box-shadow:0 18px 42px rgba(76,29,149,.38)!important;
    }
    .fab-menu{
        background:rgba(21,16,31,.98)!important;
        border-color:rgba(255,255,255,.14)!important;
    }
    .fab-menu a{
        color:#ffffff!important;
        background:rgba(255,255,255,.09)!important;
    }
    .fab-menu span{
        background:rgba(221,214,254,.16)!important;
        color:#ddd6fe!important;
    }
}

/* Status e pílulas com contraste legível */
.pill,
.plan-badge,
.nav-badge{
    font-weight:950;
}
.plan-badge.trial{background:#ede9fe!important;color:#4c1d95!important;border-color:rgba(76,29,149,.22)!important;}
.plan-badge.paid{background:var(--app-green-soft)!important;color:#0f7a4b!important;border-color:rgba(15,122,75,.22)!important;}
.plan-badge.expired{background:var(--app-amber-soft)!important;color:#7c4400!important;border-color:rgba(154,91,0,.22)!important;}
.plan-badge.blocked{background:var(--app-red-soft)!important;color:#9f1239!important;border-color:rgba(180,35,58,.22)!important;}

/* Formulários: campos mais legíveis */
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) input,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) select,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) textarea{
    background:#ffffff!important;
    color:var(--app-ink)!important;
    border-color:rgba(18,13,31,.14)!important;
}
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) input::placeholder,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) textarea::placeholder{
    color:#8a8297!important;
}

/* Tabelas e linhas no mobile: leitura mais fácil */
.visual-sheet th{color:#373044!important;background:#eeeaf6!important;}
.visual-sheet td{color:var(--app-ink)!important;}
.timeline-item,
.notification-card,
.agenda-item,
.campaign-card,
.project-summary-card,
.goal-card-mini{
    background:#ffffff!important;
    border-color:rgba(18,13,31,.10)!important;
    box-shadow:0 10px 24px rgba(27,20,45,.05);
}
.agenda-item.late{background:#fff1f3!important;border-color:rgba(180,35,58,.20)!important;}

/* Landing/cadastro/login: mantém premium, mas com botões mais legíveis */
.landing-v54-body .btn-secondary,
.register-v54-body .btn-secondary,
.login-v54-body .btn-secondary,
.landing-v54-body .btn-ghost,
.register-v54-body .btn-ghost,
.login-v54-body .btn-ghost{
    color:#21182f!important;
    background:#ffffff!important;
    border:1px solid rgba(18,13,31,.14)!important;
}
.landing-v54-body .btn-primary,
.register-v54-body .btn-primary,
.login-v54-body .btn-primary{
    color:#fff!important;
}


/* v5.7 - Correção urgente do cabeçalho no mobile/PWA
   Objetivo: impedir que o topo fique escondido/cortado quando o site vira app no celular. */
:root {
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
}

@media (max-width: 780px) {
    html,
    body {
        width: 100%;
        min-height: 100%;
        overflow-x: hidden;
        -webkit-text-size-adjust: 100%;
    }

    body {
        min-height: 100svh;
        min-height: 100dvh;
        padding-top: 0 !important;
    }

    .app-shell {
        width: 100%;
        min-height: 100svh;
        min-height: 100dvh;
        overflow-x: hidden;
    }

    .main-content {
        width: 100%;
        margin-left: 0 !important;
        padding: 10px 12px calc(106px + var(--safe-bottom)) !important;
        overflow-x: hidden;
    }

    .auth-body .main-content,
    .landing-v51-body .main-content,
    .legal-body-v51 .main-content {
        padding-top: max(12px, var(--safe-top)) !important;
    }

    .topbar {
        position: sticky;
        top: 0;
        z-index: 90;
        min-height: calc(58px + var(--safe-top));
        margin: -10px -12px 14px !important;
        padding: calc(10px + var(--safe-top)) 12px 10px !important;
        display: grid !important;
        grid-template-columns: 40px minmax(0, 1fr) auto;
        align-items: center !important;
        gap: 8px !important;
        background: rgba(8, 6, 14, .96) !important;
        border-bottom: 1px solid rgba(168, 85, 247, .22) !important;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        box-shadow: 0 10px 24px rgba(0,0,0,.20);
    }

    .topbar > div:not(.topbar-actions) {
        min-width: 0 !important;
        width: 100%;
    }

    .topbar small {
        display: none !important;
    }

    .topbar h1 {
        display: block;
        width: 100%;
        max-width: none !important;
        margin: 0 !important;
        font-size: clamp(.98rem, 4.4vw, 1.16rem) !important;
        line-height: 1.08 !important;
        letter-spacing: -.045em !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .menu-button,
    .notification-bell {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        border-radius: 14px !important;
        flex: 0 0 40px !important;
    }

    .topbar-actions {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        width: auto !important;
        min-width: 0 !important;
        gap: 6px !important;
        margin: 0 !important;
    }

    .quick-actions-top,
    .topbar-actions .plan-badge,
    .user-pill {
        display: none !important;
    }

    .notification-bell span {
        top: -5px !important;
        right: -5px !important;
        border-width: 1px !important;
    }

    .sidebar {
        padding-top: calc(18px + var(--safe-top)) !important;
        height: 100dvh;
        max-height: 100dvh;
    }

    .mobile-quick-dock,
    .mobile-quick-dock-v55 {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        bottom: max(8px, var(--safe-bottom)) !important;
        padding: 7px !important;
        border-radius: 20px !important;
    }

    .mobile-quick-dock a,
    .mobile-quick-dock button {
        min-height: 42px !important;
        max-width: 100%;
        overflow: hidden;
    }

    .mobile-more-panel {
        bottom: calc(72px + var(--safe-bottom)) !important;
    }

    .fab-actions {
        right: max(14px, env(safe-area-inset-right, 0px)) !important;
        bottom: calc(86px + var(--safe-bottom)) !important;
    }
}

@media (display-mode: standalone) and (max-width: 780px) {
    .main-content {
        padding-top: 10px !important;
    }

    .topbar {
        top: 0 !important;
        min-height: calc(62px + var(--safe-top));
        padding-top: calc(12px + var(--safe-top)) !important;
    }
}

@media (max-width: 360px) {
    .topbar {
        grid-template-columns: 38px minmax(0, 1fr) 38px;
        gap: 6px !important;
    }

    .menu-button,
    .notification-bell {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        flex-basis: 38px !important;
    }

    .topbar h1 {
        font-size: .98rem !important;
    }
}

/* =========================================================
   v5.8 — Correção definitiva de contraste e paleta interna
   Objetivo: nenhum campo branco com texto branco; app legível, premium e confortável.
   ========================================================= */
:root{
    --bg:#f5f3fa;
    --bg-2:#ece8f4;
    --panel:#ffffff;
    --panel-strong:#ffffff;
    --border:rgba(24,18,36,.12);
    --border-strong:rgba(91,33,182,.34);
    --text:#16111f;
    --muted:#5f586c;
    --muted-2:#7a7288;
    --purple:#5b21b6;
    --purple-2:#7c3aed;
    --success:#0f7a4b;
    --danger:#b4233a;
    --warning:#9a5b00;
    --shadow:0 16px 44px rgba(27,20,45,.08);

    --app-bg:#f5f3fa;
    --app-bg-soft:#f5f3fa;
    --app-card:#ffffff;
    --app-card-2:#faf9fd;
    --app-ink:#16111f;
    --app-ink-2:#282133;
    --app-muted:#5f586c;
    --app-muted-strong:#3d354f;
    --app-purple:#5b21b6;
    --app-purple-2:#7c3aed;
    --app-purple-soft:#ede9fe;
    --app-green:#0f7a4b;
    --app-green-soft:#dcfce7;
    --app-red:#b4233a;
    --app-red-soft:#ffe4e8;
    --app-amber:#9a5b00;
    --app-amber-soft:#fef3c7;
}

body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body){
    background:linear-gradient(180deg,#faf9fd 0%,#f1eef8 100%)!important;
    color:var(--app-ink)!important;
}

/* Texto padrão dentro do app */
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) h1,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) h2,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) h3,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) h4,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) strong,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) label{
    color:var(--app-ink)!important;
}
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) p,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) small,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .muted,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .panel p,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .panel small,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .stat-card span,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .timeline-date,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .visual-sheet td small{
    color:var(--app-muted)!important;
}

/* Cards claros e legíveis */
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .panel,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .stat-card,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .auth-card,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .hero-card,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .timeline-item,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .notification-card,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .agenda-item,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .campaign-card,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .project-summary-card,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .goal-card-mini,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .quick-action-card,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .business-dashboard-grid>div,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .business-today-grid>div,
body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body) .goal-numbers div{
    background:#ffffff!important;
    color:var(--app-ink)!important;
    border-color:rgba(24,18,36,.10)!important;
    box-shadow:0 12px 34px rgba(27,20,45,.06)!important;
}

/* Cabeçalho mobile/PWA claro, sem letras escuras em fundo escuro nem branco em branco */
@media (max-width:780px){
    .topbar{
        background:rgba(255,255,255,.97)!important;
        border-bottom:1px solid rgba(24,18,36,.10)!important;
        box-shadow:0 10px 28px rgba(27,20,45,.10)!important;
        color:var(--app-ink)!important;
    }
    .topbar h1,
    .topbar small{color:var(--app-ink)!important;}
    .menu-button,
    .notification-bell{
        color:var(--app-ink)!important;
        background:#f4f1fa!important;
        border:1px solid rgba(24,18,36,.14)!important;
    }
    .notification-bell span{
        background:#b4233a!important;
        color:#fff!important;
        border-color:#fff!important;
    }
}

/* Sidebar desktop escura, mas com contraste correto */
.sidebar{
    background:#120d1f!important;
    color:#ffffff!important;
    border-right:1px solid rgba(255,255,255,.10)!important;
}
.sidebar .brand strong,
.sidebar-card strong{color:#ffffff!important;}
.sidebar .brand small,
.sidebar-card span{color:#cfc7dc!important;}
.nav-menu a,
.logout-link{color:#cfc7dc!important;}
.nav-menu a:hover,
.nav-menu a.active{
    color:#ffffff!important;
    background:rgba(124,58,237,.24)!important;
    border-color:rgba(196,181,253,.28)!important;
}
.sidebar-card{
    background:rgba(255,255,255,.08)!important;
    border-color:rgba(255,255,255,.12)!important;
}

/* Formulários: regra mais importante da atualização */
input,
select,
textarea,
.v5-form input,
.v5-form select,
.v54-form input,
.v54-form select,
.login-v54-card input,
.login-v5-card input,
.mini-form input,
.mini-form select,
.sheet-form input,
.sheet-form select,
.sheet-form textarea,
.business-form input,
.business-form select,
.business-form textarea{
    background:#ffffff!important;
    color:#16111f!important;
    border:1px solid rgba(24,18,36,.18)!important;
    caret-color:#5b21b6!important;
    box-shadow:none!important;
}
input::placeholder,
textarea::placeholder{
    color:#8a8297!important;
    opacity:1!important;
}
input:focus,
select:focus,
textarea:focus{
    outline:none!important;
    border-color:rgba(91,33,182,.58)!important;
    box-shadow:0 0 0 4px rgba(91,33,182,.13)!important;
}
select option{
    background:#ffffff!important;
    color:#16111f!important;
}
.checkbox-line,
.check-row,
.remember-login-row,
.terms-row-v51{
    color:#2b2437!important;
}
.checkbox-line span,
.check-row span,
.remember-login-row span,
.terms-row-v51 span{
    color:#2b2437!important;
}
input[type="checkbox"],
input[type="radio"]{
    accent-color:#5b21b6!important;
    background:#ffffff!important;
    color:#16111f!important;
}

/* Botões com hierarquia clara */
.btn,
button,
a.btn{
    color:inherit;
}
.btn-primary,
button.btn-primary,
a.btn-primary,
.sheet-form button,
.business-form .btn{
    background:linear-gradient(135deg,#4c1d95,#6d28d9 55%,#7c3aed)!important;
    color:#ffffff!important;
    border:1px solid rgba(76,29,149,.55)!important;
    box-shadow:0 14px 30px rgba(76,29,149,.25)!important;
    text-shadow:none!important;
}
.btn-secondary,
a.btn-secondary,
button.btn-secondary,
.btn-ghost,
a.btn-ghost,
button.btn-ghost,
.mini-button,
.btn-small:not(.btn-primary),
.text-button{
    background:#ffffff!important;
    color:#241b33!important;
    border:1px solid rgba(24,18,36,.16)!important;
    box-shadow:0 8px 18px rgba(27,20,45,.06)!important;
}
.btn-secondary:hover,
.btn-ghost:hover,
.mini-button:hover,
.btn-small:not(.btn-primary):hover{
    background:#f1edff!important;
    color:#4c1d95!important;
    border-color:rgba(91,33,182,.34)!important;
}
.text-button{box-shadow:none!important;border:0!important;background:transparent!important;color:#5b21b6!important;}
.text-button.danger,
.mini-button.danger{color:#b4233a!important;}

/* Segmented/tabs */
.segmented,
.v5-toggle,
.choice-toggle{
    background:#f1eef8!important;
    border:1px solid rgba(24,18,36,.10)!important;
}
.segmented label span,
.v5-toggle button,
.choice-toggle button,
.filter-tabs a,
.project-chip{
    background:transparent!important;
    color:#40374f!important;
    border-color:transparent!important;
}
.segmented input:checked + span,
.v5-toggle button.active,
.choice-toggle button.active,
.filter-tabs a.active,
.project-chip.active{
    background:#16111f!important;
    color:#ffffff!important;
    border-color:#16111f!important;
}

/* Tabelas, cards mobile e planilha visual */
.visual-sheet,
.visual-sheet tr,
.visual-sheet td{
    color:var(--app-ink)!important;
}
.visual-sheet th{
    background:#eeeaf6!important;
    color:#40374f!important;
}
.visual-sheet tr{
    background:#ffffff!important;
}
.income,
.positive strong,
.income-cell{color:#0f7a4b!important;}
.expense,
.negative strong,
.expense-cell,
.danger-text{color:#b4233a!important;}

/* Cards escuros intencionais: mantêm texto branco */
.compact-hero,
.fab-menu,
.mobile-more-panel,
.mock-dashboard aside,
.mock-kpi,
.mock-grid2>div,
.mock-list,
.mock-bars,
.landing-v54-final,
.v54-final,
.v54-cycle-cards .featured,
.plans-v54-choice .featured{
    color:#ffffff!important;
}
.compact-hero h1,.compact-hero h2,.compact-hero h3,.compact-hero strong,
.fab-menu strong,.fab-menu a,
.mobile-more-panel a,
.landing-v54-final h1,.landing-v54-final h2,.landing-v54-final strong,
.v54-final h1,.v54-final h2,.v54-final strong,
.v54-cycle-cards .featured h3,.v54-cycle-cards .featured strong,.v54-cycle-cards .featured span,
.plans-v54-choice .featured h3,.plans-v54-choice .featured strong,.plans-v54-choice .featured span{
    color:#ffffff!important;
}
.compact-hero p,
.compact-hero small,
.v54-cycle-cards .featured small,
.plans-v54-choice .featured small{
    color:rgba(255,255,255,.78)!important;
}

/* Status/chips legíveis */
.pill,
.plan-badge,
.nav-badge{
    font-weight:950!important;
    border:1px solid transparent;
}
.plan-badge.trial,.pill.trial{background:#ede9fe!important;color:#4c1d95!important;border-color:rgba(76,29,149,.22)!important;}
.plan-badge.paid,.pill.paid,.pill.success{background:#dcfce7!important;color:#0f7a4b!important;border-color:rgba(15,122,75,.22)!important;}
.plan-badge.expired,.pill.warning{background:#fef3c7!important;color:#7c4400!important;border-color:rgba(154,91,0,.22)!important;}
.plan-badge.blocked,.pill.danger{background:#ffe4e8!important;color:#9f1239!important;border-color:rgba(180,35,58,.22)!important;}
.nav-badge{background:#b4233a!important;color:#fff!important;}

/* Menu inferior mobile */
.mobile-quick-dock-v55{
    background:rgba(255,255,255,.98)!important;
    border:1px solid rgba(24,18,36,.12)!important;
    box-shadow:0 -12px 34px rgba(27,20,45,.16)!important;
}
.mobile-quick-dock-v55 a,
.mobile-quick-dock-v55 button{
    color:#4d465b!important;
}
.mobile-quick-dock-v55 .active,
.mobile-quick-dock-v55 button.active{
    background:#16111f!important;
    color:#ffffff!important;
}
.fab-main{
    background:linear-gradient(135deg,#4c1d95,#6d28d9)!important;
    color:#ffffff!important;
}

/* Alertas */
.alert{background:#ffffff!important;color:#16111f!important;border:1px solid rgba(24,18,36,.12)!important;}
.alert-success{background:#dcfce7!important;color:#0f7a4b!important;border-color:rgba(15,122,75,.22)!important;}
.alert-error{background:#ffe4e8!important;color:#9f1239!important;border-color:rgba(180,35,58,.22)!important;}

/* Landing/cadastro/login: fundo claro premium e textos sempre legíveis */
.landing-v54-body,
.register-v54-body,
.login-v54-body{
    color:#16111f!important;
}
.landing-v54-body input,
.landing-v54-body select,
.landing-v54-body textarea,
.register-v54-body input,
.register-v54-body select,
.register-v54-body textarea,
.login-v54-body input,
.login-v54-body select,
.login-v54-body textarea{
    background:#ffffff!important;
    color:#16111f!important;
    border:1px solid rgba(24,18,36,.18)!important;
}
.landing-v54-body label,
.register-v54-body label,
.login-v54-body label{
    color:#2b2437!important;
}
.login-v54-card,
.signup-v54-card,
.auth-card{
    background:#ffffff!important;
    color:#16111f!important;
    border-color:rgba(24,18,36,.10)!important;
}
.login-v54-card h1,.signup-v54-card h1,.auth-card h1,
.login-v54-card strong,.signup-v54-card strong,.auth-card strong{
    color:#16111f!important;
}
.login-v54-card p,.signup-v54-card p,.auth-card p,
.login-v54-card small,.signup-v54-card small,.auth-card small{
    color:#5f586c!important;
}

/* Última garantia: qualquer coisa em fundo claro não pode herdar branco */
[style*="background:#fff"],
[style*="background: #fff"],
[style*="background:white"],
[style*="background: white"]{
    color:#16111f!important;
}

/* =========================================================
   v5.9 - Topo app glass + sidebar independente + contraste fino
   Foco: mobile/PWA, leitura do saldo e textos sem colisão de cores.
   ========================================================= */
.topbar-mobile-brand{display:none;}
.topbar-title-block{min-width:0;}

/* Saldo e cards escuros: força hierarquia legível */
.compact-hero .eyebrow,
.compact-hero h1,
.compact-hero h2,
.compact-hero h3,
.compact-hero p,
.compact-hero small,
.compact-hero span,
.compact-hero strong,
.hero-balance,
.hero-balance small,
.hero-balance span,
.hero-balance strong,
.compact-balance,
.compact-balance small,
.compact-balance span,
.compact-balance strong{
    text-shadow:none!important;
}
.compact-hero .eyebrow{color:#d8b4fe!important;}
.hero-balance small,
.compact-balance small{color:rgba(255,255,255,.82)!important;font-weight:900!important;letter-spacing:.08em;text-transform:uppercase;}
.hero-balance strong,
.compact-balance strong{color:#ffffff!important;font-weight:950!important;line-height:.95!important;}
.hero-balance span,
.compact-balance span{color:#ede9fe!important;font-weight:800!important;}
.compact-balance,
.hero-balance{
    background:rgba(255,255,255,.16)!important;
    border:1px solid rgba(255,255,255,.26)!important;
}

/* Textos em fundos claros: regra geral para evitar branco sobre branco */
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final),
.stat-card,
.quick-action-card,
.sheet-mobile-card,
.business-mobile-card,
.goal-card,
.reminder-card,
.notification-card,
.table-card,
.onboarding-mini-v51,
.notification-mini-panel{
    color:#171321!important;
}
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final) h1,
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final) h2,
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final) h3,
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final) strong,
.stat-card strong,
.quick-action-card strong,
.sheet-mobile-card strong,
.business-mobile-card strong,
.goal-card strong,
.reminder-card strong,
.notification-card strong{
    color:#171321!important;
}
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final) p,
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final) small,
.panel:not(.compact-hero):not(.landing-v54-final):not(.v54-final) span:not(.pill):not(.plan-badge):not(.nav-badge):not(.brand-mark),
.stat-card span,
.stat-card small,
.sheet-mobile-card small,
.business-mobile-card small,
.goal-card small,
.reminder-card small,
.notification-card small{
    color:#635b70!important;
}

/* Inputs sempre editáveis e visíveis */
input,select,textarea{
    background:#ffffff!important;
    color:#171321!important;
    caret-color:#6d28d9!important;
    border-color:rgba(24,18,36,.20)!important;
}
input::placeholder,textarea::placeholder{color:#8a8198!important;opacity:1!important;}
input:focus,select:focus,textarea:focus{
    border-color:#7c3aed!important;
    box-shadow:0 0 0 4px rgba(124,58,237,.14)!important;
    outline:none!important;
}
label{color:#2b2437!important;font-weight:850!important;}

/* Sidebar: drawer independente, sem parecer grudado no cabeçalho */
body.menu-open::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:1090;
    background:rgba(13,9,20,.42);
    backdrop-filter:blur(7px);
}
@media (max-width: 980px){
    .sidebar{
        z-index:1200!important;
        top:max(10px,env(safe-area-inset-top))!important;
        left:10px!important;
        bottom:max(10px,env(safe-area-inset-bottom))!important;
        height:auto!important;
        border:1px solid rgba(255,255,255,.10)!important;
        border-radius:28px!important;
        background:rgba(18,13,31,.96)!important;
        box-shadow:0 30px 90px rgba(0,0,0,.38)!important;
        padding:18px!important;
    }
    .sidebar .brand,
    .sidebar .brand strong{color:#fff!important;}
    .sidebar .brand small{color:#c9bedb!important;}
    .sidebar .nav-menu a{color:#ddd6fe!important;background:transparent!important;}
    .sidebar .nav-menu a.active,
    .sidebar .nav-menu a:hover{background:rgba(255,255,255,.10)!important;color:#fff!important;border-color:rgba(255,255,255,.12)!important;}
    .sidebar .logout-link{color:#fecdd3!important;background:rgba(255,255,255,.06)!important;}
}

/* Topo mobile/PWA: glass fixo, leve, com logo central */
@media (max-width: 980px){
    .main-content{
        padding-top:calc(76px + env(safe-area-inset-top))!important;
    }
    .topbar{
        position:fixed!important;
        top:0!important;
        left:0!important;
        right:0!important;
        z-index:900!important;
        min-height:calc(58px + env(safe-area-inset-top))!important;
        margin:0!important;
        padding:calc(9px + env(safe-area-inset-top)) 14px 9px!important;
        border-radius:0 0 24px 24px!important;
        background:rgba(255,255,255,.76)!important;
        border-bottom:1px solid rgba(24,18,36,.09)!important;
        box-shadow:0 12px 34px rgba(24,18,36,.10)!important;
        backdrop-filter:blur(22px) saturate(135%)!important;
        -webkit-backdrop-filter:blur(22px) saturate(135%)!important;
    }
    .topbar-title-block{display:none!important;}
    .topbar-mobile-brand{
        display:flex!important;
        align-items:center;
        justify-content:center;
        gap:8px;
        position:absolute;
        left:50%;
        top:calc(9px + env(safe-area-inset-top));
        transform:translateX(-50%);
        height:40px;
        color:#171321!important;
        font-weight:950;
        letter-spacing:-.05em;
        pointer-events:auto;
    }
    .topbar-mobile-brand .brand-mark{
        width:34px!important;
        height:34px!important;
        border-radius:12px!important;
        font-size:.88rem!important;
        box-shadow:0 10px 24px rgba(76,29,149,.28)!important;
    }
    .menu-button,
    .notification-bell{
        background:#ffffff!important;
        color:#171321!important;
        border:1px solid rgba(24,18,36,.12)!important;
        box-shadow:0 8px 22px rgba(24,18,36,.08)!important;
    }
    .notification-bell span{background:#b4233a!important;color:#fff!important;}
    .topbar-actions{margin-left:auto!important;}
    .user-pill{display:none!important;}
}
@media (display-mode: standalone) and (max-width: 980px){
    .main-content{padding-top:calc(82px + env(safe-area-inset-top))!important;}
    .topbar{padding-top:calc(11px + env(safe-area-inset-top))!important;}
    .topbar-mobile-brand{top:calc(11px + env(safe-area-inset-top));}
}
@media (max-width: 380px){
    .topbar-mobile-brand strong{display:none!important;}
    .topbar-mobile-brand .brand-mark{width:36px!important;height:36px!important;}
}

/* =========================================================
   v6.0 — Correção cirúrgica de contraste em dashboard/planilha
   Foco: evitar texto invisível em cards claros/escuros e melhorar leitura.
   ========================================================= */
:root{
    --bw-ink:#15111f;
    --bw-ink-2:#2a2335;
    --bw-muted:#564d63;
    --bw-line:#d9d2e6;
    --bw-purple:#5b21b6;
    --bw-purple-2:#6d28d9;
    --bw-surface:#ffffff;
    --bw-surface-2:#f6f3fb;
}

/* Dashboard hero: texto principal sempre escuro e saldo sempre destacado */
.dashboard-hero.compact-hero{
    background:linear-gradient(135deg,#ffffff 0%,#f7f4fc 56%,#eee8fb 100%)!important;
    border:1px solid rgba(24,18,36,.11)!important;
    box-shadow:0 18px 46px rgba(27,20,45,.09)!important;
    color:var(--bw-ink)!important;
}
.dashboard-hero.compact-hero::after{
    background:radial-gradient(circle,rgba(109,40,217,.13),transparent 66%)!important;
}
.dashboard-hero.compact-hero .eyebrow{
    color:var(--bw-purple)!important;
    background:#ede9fe!important;
    border:1px solid rgba(91,33,182,.18)!important;
    display:inline-flex!important;
    width:max-content!important;
    padding:7px 10px!important;
    border-radius:999px!important;
    text-shadow:none!important;
}
.dashboard-hero.compact-hero h1,
.dashboard-hero.compact-hero h2,
.dashboard-hero.compact-hero h3{
    color:var(--bw-ink)!important;
    text-shadow:none!important;
}
.dashboard-hero.compact-hero p{
    color:var(--bw-muted)!important;
    text-shadow:none!important;
    font-weight:650!important;
}
.dashboard-hero .hero-balance,
.dashboard-hero .compact-balance{
    background:linear-gradient(135deg,#171321 0%,#2a1746 56%,#5b21b6 130%)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 18px 42px rgba(91,33,182,.20)!important;
    color:#fff!important;
}
.dashboard-hero .hero-balance small,
.dashboard-hero .compact-balance small{
    color:#e9d5ff!important;
}
.dashboard-hero .hero-balance strong,
.dashboard-hero .compact-balance strong{
    color:#ffffff!important;
    text-shadow:0 1px 0 rgba(0,0,0,.18)!important;
}
.dashboard-hero .hero-balance span,
.dashboard-hero .compact-balance span{
    color:#f3e8ff!important;
}

/* Painel de últimas linhas do mês e similares */
.dashboard-sheet-preview,
.visual-sheet-panel,
.panel:has(.mini-sheet),
.panel:has(.visual-sheet){
    background:#ffffff!important;
    color:var(--bw-ink)!important;
}
.dashboard-sheet-preview .panel-header,
.visual-sheet-panel .panel-header{
    border-bottom:1px solid rgba(24,18,36,.10)!important;
    padding-bottom:12px!important;
}
.dashboard-sheet-preview .panel-header .eyebrow,
.visual-sheet-panel .panel-header .eyebrow,
.panel-header .eyebrow{
    color:var(--bw-purple)!important;
    background:#f0eaff!important;
    border:1px solid rgba(91,33,182,.15)!important;
    display:inline-flex!important;
    padding:6px 9px!important;
    border-radius:999px!important;
    text-shadow:none!important;
}
.dashboard-sheet-preview .panel-header h3,
.visual-sheet-panel .panel-header h3,
.panel-header h3{
    color:var(--bw-ink)!important;
    font-weight:950!important;
}
.dashboard-sheet-preview .panel-header a,
.visual-sheet-panel .panel-header a,
.panel-header a{
    color:#ffffff!important;
    background:linear-gradient(135deg,#5b21b6,#7c3aed)!important;
    border:1px solid rgba(91,33,182,.25)!important;
    border-radius:999px!important;
    padding:9px 12px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:34px!important;
    box-shadow:0 8px 20px rgba(91,33,182,.18)!important;
}

/* Tabelas: cabeçalho com fundo escuro e texto branco para leitura imediata */
.table-wrap{
    background:#ffffff!important;
    border:1px solid rgba(24,18,36,.10)!important;
}
table,
.mini-sheet,
.visual-sheet,
.business-table{
    background:#ffffff!important;
    color:var(--bw-ink)!important;
}
th,
.mini-sheet th,
.visual-sheet th,
.business-table th,
.visual-sheet thead th,
.mini-sheet thead th{
    background:#171321!important;
    color:#ffffff!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    text-shadow:none!important;
}
td,
.mini-sheet td,
.visual-sheet td,
.business-table td{
    background:#ffffff!important;
    color:var(--bw-ink-2)!important;
    border-bottom:1px solid rgba(24,18,36,.08)!important;
}
td strong,
.mini-sheet td strong,
.visual-sheet td strong,
.business-table td strong{
    color:var(--bw-ink)!important;
}
.mini-sheet tbody tr:nth-child(even) td,
.visual-sheet tbody tr:nth-child(even) td,
.business-table tbody tr:nth-child(even) td{
    background:#faf8fe!important;
}
.mini-sheet tbody tr:hover td,
.visual-sheet tbody tr:hover td,
.business-table tbody tr:hover td{
    background:#f1ecff!important;
}
td small,
.visual-sheet td small,
.business-table td small{
    color:var(--bw-muted)!important;
}

/* Valores financeiros devem continuar verdes/vermelhos mesmo dentro de tabelas */
td strong.income,
td strong.expense,
.mini-sheet td strong.income,
.mini-sheet td strong.expense,
.visual-sheet td strong.income,
.visual-sheet td strong.expense{
    font-weight:950!important;
}
td strong.income,
.mini-sheet td strong.income,
.visual-sheet td strong.income,
.income-cell{ color:#0f7a4b!important; }
td strong.expense,
.mini-sheet td strong.expense,
.visual-sheet td strong.expense,
.expense-cell{ color:#b4233a!important; }

/* Cards internos claros: título escuro, apoio cinza e links com contraste */
.panel:not(.compact-hero) *:not(.btn):not(.btn-primary):not(.pill):not(.plan-badge):not(.nav-badge):not(.income):not(.expense):not(.income-cell):not(.expense-cell):not(input):not(select):not(textarea){
    text-shadow:none!important;
}
.panel:not(.compact-hero) p,
.panel:not(.compact-hero) small,
.panel:not(.compact-hero) span:not(.pill):not(.plan-badge):not(.nav-badge){
    color:var(--bw-muted)!important;
}
.panel:not(.compact-hero) h1,
.panel:not(.compact-hero) h2,
.panel:not(.compact-hero) h3,
.panel:not(.compact-hero) h4,
.panel:not(.compact-hero) strong:not(.income):not(.expense):not(.income-cell):not(.expense-cell){
    color:var(--bw-ink)!important;
}

/* Botões secundários/links pequenos sempre legíveis */
.btn-secondary,
.btn-ghost,
.mini-button,
.btn-small:not(.btn-primary),
.text-button:not(.danger){
    color:#3b2759!important;
    background:#ffffff!important;
    border:1px solid rgba(91,33,182,.24)!important;
}
.btn-secondary:hover,
.btn-ghost:hover,
.mini-button:hover,
.btn-small:not(.btn-primary):hover{
    color:#ffffff!important;
    background:#5b21b6!important;
}

@media (max-width: 780px){
    .dashboard-hero.compact-hero{
        padding:18px!important;
        gap:13px!important;
    }
    .dashboard-hero.compact-hero h2{
        font-size:1.52rem!important;
        line-height:1.05!important;
    }
    .dashboard-hero.compact-hero p{
        font-size:.88rem!important;
    }
    .dashboard-hero .compact-balance strong,
    .dashboard-hero .hero-balance strong{
        font-size:1.78rem!important;
        letter-spacing:-.055em!important;
    }
    .dashboard-sheet-preview .panel-header,
    .visual-sheet-panel .panel-header{
        align-items:flex-start!important;
    }
    .dashboard-sheet-preview .panel-header a,
    .visual-sheet-panel .panel-header a,
    .panel-header a{
        padding:8px 10px!important;
        font-size:.78rem!important;
    }
}

/* =========================================================
   v6.2 — Refinamento Visual Dashboard
   Limpeza do topo, mais contraste, dashboard mais visual e menos poluído.
   ========================================================= */
:root{
    --v62-ink:#171321;
    --v62-ink-soft:#2d2638;
    --v62-muted:#62586f;
    --v62-purple:#5b21b6;
    --v62-purple-2:#7c3aed;
    --v62-purple-soft:#efe7ff;
    --v62-line:#ded7eb;
    --v62-card:#ffffff;
    --v62-bg:#f6f3fa;
    --v62-green:#0f7a4b;
    --v62-red:#b4233a;
    --v62-orange:#c05621;
    --v62-blue:#2854c5;
}

body:not(.landing-v54-body):not(.register-v54-body):not(.login-v54-body){
    background:
        radial-gradient(circle at 84% 8%, rgba(124,58,237,.10), transparent 32%),
        linear-gradient(180deg,#faf9fd 0%, #f2eef8 100%)!important;
    color:var(--v62-ink)!important;
}

/* Topo limpo: sem excesso de atalhos, só identidade, plano, notificações e perfil */
.quick-actions-top{display:none!important;}
.topbar{
    background:rgba(250,249,253,.88)!important;
    border:1px solid rgba(24,18,36,.08)!important;
    box-shadow:0 14px 38px rgba(24,18,36,.07)!important;
    border-radius:24px!important;
    padding:13px 18px!important;
}
.topbar-title-block small,
.topbar small{
    color:var(--v62-purple)!important;
    font-weight:950!important;
}
.topbar h1{color:var(--v62-ink)!important;}
.notification-bell,
.user-pill,
.plan-badge{
    background:#fff!important;
    color:var(--v62-ink)!important;
    border:1px solid rgba(24,18,36,.11)!important;
    box-shadow:0 8px 22px rgba(24,18,36,.06)!important;
}
.plan-badge.trial,
.plan-badge.paid,
.plan-badge.active{
    background:#f1e8ff!important;
    color:#4c1d95!important;
    border-color:rgba(91,33,182,.18)!important;
}
.user-pill span{background:linear-gradient(135deg,#5b21b6,#7c3aed)!important;color:#fff!important;}
.user-pill strong{color:var(--v62-ink)!important;}

/* Sidebar mais legível */
.sidebar .brand strong{color:#fff!important;font-size:1.02rem!important;}
.sidebar .brand small{color:#c7bdd6!important;}
.sidebar-card{
    background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(124,58,237,.16))!important;
    border-color:rgba(255,255,255,.12)!important;
}
.sidebar-card span{color:#d8cdec!important;}
.sidebar-card strong{color:#ffffff!important;}

/* Hero: saldo como destaque real */
.dashboard-hero.compact-hero{
    display:grid!important;
    grid-template-columns:1fr minmax(260px,360px)!important;
    align-items:center!important;
    gap:22px!important;
    padding:32px!important;
    background:linear-gradient(135deg,#ffffff 0%,#f7f4fc 58%,#eee7ff 100%)!important;
}
.dashboard-hero.compact-hero h2{
    color:var(--v62-ink)!important;
    letter-spacing:-.06em!important;
}
.dashboard-hero.compact-hero p{
    color:#4e455d!important;
    font-weight:700!important;
    max-width:560px!important;
}
.dashboard-hero .hero-balance,
.dashboard-hero .compact-balance{
    min-height:138px!important;
    border-radius:26px!important;
    padding:22px!important;
    background:linear-gradient(135deg,#110b1d 0%,#2b1648 54%,#5b21b6 130%)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 24px 54px rgba(91,33,182,.24)!important;
}
.dashboard-hero .compact-balance small,
.dashboard-hero .hero-balance small{
    color:#ddd6fe!important;
    font-size:.72rem!important;
    font-weight:950!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
}
.dashboard-hero .compact-balance strong,
.dashboard-hero .hero-balance strong{
    color:#ffffff!important;
    font-size:clamp(2rem,4vw,3rem)!important;
    line-height:1!important;
    letter-spacing:-.075em!important;
    text-shadow:none!important;
}
.dashboard-hero .compact-balance span,
.dashboard-hero .hero-balance span{
    color:#f5f3ff!important;
    font-weight:850!important;
}

/* Atalhos compactos e com cara de app */
.quick-action-grid.dashboard-actions{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:10px!important;
}
.quick-action-card{
    min-height:94px!important;
    padding:14px!important;
    border-radius:22px!important;
    background:#ffffff!important;
    border:1px solid rgba(24,18,36,.09)!important;
    box-shadow:0 12px 32px rgba(27,20,45,.055)!important;
}
.quick-action-card span{
    width:36px!important;
    height:36px!important;
    border-radius:14px!important;
    font-size:1.08rem!important;
}
.quick-action-card strong{
    color:var(--v62-ink)!important;
    font-size:.98rem!important;
    line-height:1.05!important;
}
.quick-action-card small{
    color:var(--v62-muted)!important;
    font-size:.73rem!important;
    line-height:1.2!important;
}

/* Blocos vazios viram ação, não espaço morto */
.empty-state-card{
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px;
    border-radius:22px;
    background:#faf8ff;
    border:1px dashed rgba(91,33,182,.20);
}
.empty-state-card>span{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:16px;
    background:#efe7ff;
    color:var(--v62-purple)!important;
    font-size:1.2rem;
}
.empty-state-card strong{color:var(--v62-ink)!important;font-size:1rem;}
.empty-state-card p{margin:3px 0 0!important;color:var(--v62-muted)!important;}
.empty-state-card .btn{margin-left:auto;white-space:nowrap;}

/* Painel de vendas com leitura por cor, sem poluir */
.business-dashboard-panel{
    border:1px solid rgba(91,33,182,.12)!important;
    background:linear-gradient(180deg,#ffffff 0%,#fbf9ff 100%)!important;
}
.business-dashboard-grid>div:nth-child(1){background:#effdf5!important;border-color:rgba(15,122,75,.14)!important;}
.business-dashboard-grid>div:nth-child(2){background:#fff6ed!important;border-color:rgba(192,86,33,.16)!important;}
.business-dashboard-grid>div:nth-child(3){background:#f0fdf4!important;border-color:rgba(15,122,75,.14)!important;}
.business-dashboard-grid>div:nth-child(4){background:#eef2ff!important;border-color:rgba(40,84,197,.16)!important;}
.business-dashboard-grid>div:nth-child(1) span{color:#0f7a4b!important;}
.business-dashboard-grid>div:nth-child(2) span{color:#9a431b!important;}
.business-dashboard-grid>div:nth-child(3) span{color:#0f7a4b!important;}
.business-dashboard-grid>div:nth-child(4) span{color:#2854c5!important;}
.business-dashboard-grid>div:nth-child(4) strong{color:#1e3a8a!important;}

/* Gráfico simples de visão mensal */
.finance-visual-panel{
    background:#ffffff!important;
    border:1px solid rgba(24,18,36,.08)!important;
}
.finance-bars{display:grid;gap:14px;margin-top:4px;}
.finance-bar-row{display:grid;grid-template-columns:210px 1fr;align-items:center;gap:16px;}
.finance-bar-label{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.finance-bar-label span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:950;color:var(--v62-muted)!important;}
.finance-bar-label strong{color:var(--v62-ink)!important;font-weight:950;}
.finance-bar-track{height:13px;border-radius:999px;background:#eee9f6;overflow:hidden;box-shadow:inset 0 1px 2px rgba(24,18,36,.06);}
.finance-bar-track i{display:block;height:100%;min-width:5px;border-radius:999px;}
.income-row .finance-bar-track i{background:linear-gradient(90deg,#16a064,#23c27a);}
.expense-row .finance-bar-track i{background:linear-gradient(90deg,#d63b4c,#f97316);}
.profit-row .finance-bar-track i{background:linear-gradient(90deg,#5b21b6,#a855f7);}

/* Botões e links: regra definitiva */
.btn,
.panel-header a,
.dashboard-sheet-preview .panel-header a,
.visual-sheet-panel .panel-header a{
    font-weight:950!important;
}
.btn-primary,
.panel-header a,
.dashboard-sheet-preview .panel-header a,
.visual-sheet-panel .panel-header a,
.quick-action-card:hover span{
    background:linear-gradient(135deg,#5b21b6,#7c3aed)!important;
    color:#fff!important;
}
.btn-secondary,
.btn-ghost,
.mini-button,
.text-button:not(.danger){
    background:#ffffff!important;
    color:#4c1d95!important;
    border:1px solid rgba(91,33,182,.22)!important;
    box-shadow:0 8px 22px rgba(91,33,182,.08)!important;
}
.mini-details summary,
.scale-track span{color:#4e455d!important;}

/* Metas e cards vazios mais amigáveis */
.panel .empty,
.empty{color:var(--v62-muted)!important;font-weight:650!important;}
.panel .empty a{color:#4c1d95!important;font-weight:950!important;}

@media (max-width: 1180px){
    .quick-action-grid.dashboard-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}
@media (max-width: 980px){
    .topbar{
        border-radius:0 0 22px 22px!important;
        border-left:0!important;
        border-right:0!important;
        border-top:0!important;
    }
    .dashboard-hero.compact-hero{
        grid-template-columns:1fr!important;
        padding:20px!important;
    }
    .quick-action-grid.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
    .quick-action-card{min-height:84px!important;padding:13px!important;}
    .quick-action-card small{display:none!important;}
    .finance-bar-row{grid-template-columns:1fr!important;gap:8px;}
    .finance-bar-label{justify-content:space-between;}
    .empty-state-card{align-items:flex-start;}
    .empty-state-card .btn{margin-left:0;width:100%;}
    .empty-state-card{display:grid;grid-template-columns:auto 1fr;}
    .empty-state-card .btn{grid-column:1 / -1;}
}
@media (max-width: 520px){
    .quick-action-grid.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;}
    .dashboard-hero .compact-balance strong,
    .dashboard-hero .hero-balance strong{font-size:2.05rem!important;}
    .business-dashboard-grid{grid-template-columns:repeat(2,1fr)!important;}
}

/* =========================================================
   v6.3 - Correção final de contraste em blocos marcados
   Regra: fundo escuro = texto branco / fundo claro = texto escuro
   ========================================================= */
:root{
  --bl4ck-bg:#f7f4fb;
  --bl4ck-card:#ffffff;
  --bl4ck-ink:#15101f;
  --bl4ck-muted:#645b73;
  --bl4ck-purple:#6d28d9;
  --bl4ck-purple-2:#7c3aed;
  --bl4ck-purple-dark:#1b1028;
  --bl4ck-purple-deep:#2a104f;
  --bl4ck-soft:#ede9fe;
  --bl4ck-border:#e5def1;
}

/* Saldo acumulado do dashboard: sempre fundo escuro com valor branco puro */
.dashboard-hero .hero-balance,
.dashboard-hero .compact-balance,
.hero-balance.compact-balance,
.compact-balance,
.dashboard-balance,
.balance-card,
.saldo-card{
  background:linear-gradient(135deg,#160a28 0%,#2a104f 55%,#5b21b6 130%)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  color:#ffffff!important;
  box-shadow:0 24px 54px rgba(91,33,182,.24)!important;
}
.dashboard-hero .hero-balance *,
.dashboard-hero .compact-balance *,
.hero-balance.compact-balance *,
.compact-balance *,
.dashboard-balance *,
.balance-card *,
.saldo-card *{
  color:#ffffff!important;
  opacity:1!important;
  text-shadow:none!important;
}
.dashboard-hero .hero-balance small,
.dashboard-hero .compact-balance small,
.compact-balance small,
.balance-card small,
.saldo-card small{
  color:#ddd6fe!important;
  font-weight:950!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.dashboard-hero .hero-balance strong,
.dashboard-hero .compact-balance strong,
.compact-balance strong,
.balance-card strong,
.saldo-card strong{
  color:#ffffff!important;
  font-weight:950!important;
  opacity:1!important;
}
.dashboard-hero .hero-balance span,
.dashboard-hero .compact-balance span,
.compact-balance span,
.balance-card span,
.saldo-card span{
  color:#f5f3ff!important;
  font-weight:850!important;
}

/* Primeiros passos/onboarding: cards claros para leitura fácil */
.onboarding-grid-v51 .onboarding-step,
.onboarding-step,
.step-card,
.onboarding-card{
  background:linear-gradient(135deg,#ffffff 0%,#faf8ff 100%)!important;
  color:#15101f!important;
  border:1px solid #d8c8ff!important;
  box-shadow:0 14px 34px rgba(24,16,36,.07)!important;
}
.onboarding-grid-v51 .onboarding-step *,
.onboarding-step *,
.step-card *,
.onboarding-card *{
  color:#15101f!important;
  opacity:1!important;
  text-shadow:none!important;
}
.onboarding-grid-v51 .onboarding-step strong,
.onboarding-step strong,
.step-card strong,
.onboarding-card strong{
  color:#15101f!important;
  font-weight:950!important;
}
.onboarding-grid-v51 .onboarding-step small,
.onboarding-step small,
.step-card small,
.onboarding-card small,
.onboarding-grid-v51 .onboarding-step p,
.onboarding-step p,
.step-card p,
.onboarding-card p{
  color:#5f566d!important;
  font-weight:700!important;
  line-height:1.45!important;
}
.onboarding-grid-v51 .onboarding-step span,
.onboarding-step span,
.step-card span,
.onboarding-card span,
.step-number,
.badge-number,
.circle-number{
  background:#6d28d9!important;
  color:#ffffff!important;
  border:0!important;
}
.onboarding-grid-v51 .onboarding-step.done,
.onboarding-step.done{
  background:linear-gradient(135deg,#f0fdf4 0%,#f6f0ff 100%)!important;
  border-color:#86efac!important;
}
.onboarding-grid-v51 .onboarding-step.done span,
.onboarding-step.done span{
  background:#16a34a!important;
  color:#ffffff!important;
}

/* Cards claros: texto escuro, inclusive quando algum estilo antigo tentar herdar branco */
.panel:not(.compact-hero),
.card,
.dashboard-card,
.quick-action-card,
.metric-card,
.stat-card,
.table-card,
.white-card,
.sheet-mobile-card,
.business-mobile-card,
.goal-card,
.reminder-card,
.notification-card,
.empty-state-card,
.onboarding-mini-v51,
.onboarding-final-card{
  color:#15101f!important;
}
.panel:not(.compact-hero) h1,
.panel:not(.compact-hero) h2,
.panel:not(.compact-hero) h3,
.panel:not(.compact-hero) h4,
.card h1,.card h2,.card h3,.card h4,
.dashboard-card h1,.dashboard-card h2,.dashboard-card h3,.dashboard-card h4,
.quick-action-card strong,
.metric-card strong,
.stat-card strong,
.table-card strong,
.empty-state-card strong{
  color:#15101f!important;
}
.panel:not(.compact-hero) p,
.panel:not(.compact-hero) small,
.card p,.card small,
.dashboard-card p,.dashboard-card small,
.quick-action-card small,
.metric-card small,
.stat-card small,
.table-card small,
.empty-state-card p,
.empty-state-card small{
  color:#645b73!important;
}

/* Cards realmente escuros: texto branco */
.dark-card,
.panel-dark,
.premium-card,
.mock-kpi,
.mock-list,
.mock-bars,
.mock-grid2 > div,
[class*="dark"]{
  color:#ffffff;
}
.dark-card *,
.panel-dark *,
.premium-card *,
.mock-kpi *,
.mock-list *,
.mock-bars *,
.mock-grid2 > div *{
  color:#ffffff!important;
  opacity:1!important;
}
.dark-card p,
.panel-dark p,
.premium-card p,
.mock-kpi small,
.mock-list small{
  color:#ede9fe!important;
}

/* Botões: contraste fixo */
.btn-primary,
.button-primary,
.action-primary,
.btn:not(.btn-secondary):not(.btn-ghost):not(.btn-danger){
  background:#6d28d9!important;
  color:#ffffff!important;
  border-color:#6d28d9!important;
}
.btn-primary *,
.button-primary *,
.action-primary *,
.btn:not(.btn-secondary):not(.btn-ghost):not(.btn-danger) *{
  color:#ffffff!important;
}
.btn-secondary,
.button-secondary,
.action-secondary,
.btn-ghost{
  background:#ffffff!important;
  color:#2a104f!important;
  border:1px solid #d8c8ff!important;
}
.btn-secondary *,
.button-secondary *,
.action-secondary *,
.btn-ghost *{
  color:#2a104f!important;
}

/* Tabelas e planilha */
table thead th,
.table thead th,
.data-table thead th,
.sheet-table thead th{
  background:#15101f!important;
  color:#ffffff!important;
  border-color:#15101f!important;
}
table tbody td,
.table tbody td,
.data-table tbody td,
.sheet-table tbody td{
  color:#15101f!important;
  background:#ffffff;
}
table tbody tr:nth-child(even) td,
.table tbody tr:nth-child(even) td,
.data-table tbody tr:nth-child(even) td,
.sheet-table tbody tr:nth-child(even) td{
  background:#faf8ff!important;
}

/* Formulários: sempre legíveis */
input,select,textarea,
.form-control,
.input,
select option{
  background:#ffffff!important;
  color:#15101f!important;
  border:1px solid #d8d0e7!important;
}
input::placeholder,textarea::placeholder{
  color:#8a8099!important;
}
label{color:#342b43!important;font-weight:800!important;}

/* Sidebar/status: não deixar texto apagar */
.sidebar,
.app-sidebar{
  background:#12091f!important;
  color:#ffffff!important;
}
.sidebar *,
.app-sidebar *,
.sidebar a,
.app-sidebar a{
  color:#ede9fe!important;
}
.sidebar a.active,
.app-sidebar a.active,
.sidebar .active,
.app-sidebar .active{
  background:#3b176b!important;
  color:#ffffff!important;
}
.plan-status,
.sidebar-plan,
.status-plan{
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  color:#ffffff!important;
}
.plan-status *,
.sidebar-plan *,
.status-plan *{
  color:#ffffff!important;
  opacity:1!important;
}


/* ======================================================
   BL4CK v7.0 - CONTRASTE ESTRUTURAL ROXO ESCURO
   Última camada dentro do style.css + inline nos componentes.
   ====================================================== */
.hero-balance.compact-balance,
.dashboard-hero .hero-balance,
.sheet-hero,
.notification-hero,
.reminders-hero,
.business-hero,
.projects-hero,
.price-card.featured,
.v54-cycle-cards article.featured,
.plans-v54-choice article.featured {
  background: linear-gradient(135deg, #15101F 0%, #2A104F 48%, #5B21B6 100%) !important;
  color: #FFFFFF !important;
}
.hero-balance.compact-balance *,
.dashboard-hero .hero-balance *,
.sheet-hero *,
.notification-hero *,
.reminders-hero *,
.business-hero *,
.projects-hero *,
.price-card.featured *,
.v54-cycle-cards article.featured *,
.plans-v54-choice article.featured * {
  color: #FFFFFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.sheet-hero p,
.notification-hero p,
.reminders-hero p,
.business-hero p,
.projects-hero p,
.hero-balance.compact-balance small,
.hero-balance.compact-balance span,
.hero-mini-stats span,
.business-quick-stats span,
.price-card.featured p,
.price-card.featured small,
.price-card.featured .price-line span,
.v54-cycle-cards article.featured small,
.plans-v54-choice article.featured small {
  color: #EDE9FE !important;
  opacity: 1 !important;
}
.hero-balance.compact-balance strong,
.sheet-hero h2,
.notification-hero h2,
.reminders-hero h2,
.business-hero h2,
.projects-hero h2,
.price-card.featured h3,
.price-card.featured .price-line strong,
.v54-cycle-cards article.featured strong,
.plans-v54-choice article.featured strong {
  color: #FFFFFF !important;
  opacity: 1 !important;
}
.hero-mini-stats > div,
.business-quick-stats > div {
  background: rgba(255,255,255,.13) !important;
  border-color: rgba(255,255,255,.22) !important;
}
.hero-mini-stats > div *,
.business-quick-stats > div * {
  color: #FFFFFF !important;
  opacity: 1 !important;
}
.hero-mini-stats strong.income,
.business-quick-stats strong.income { color: #BBF7D0 !important; }
.hero-mini-stats strong.expense,
.business-quick-stats strong.expense { color: #FECDD3 !important; }
.segmented input:checked + span,
.compact-segmented input:checked + span,
.btn-primary,
a.btn-primary,
button.btn-primary,
.panel-header .btn,
.panel-header a.btn {
  background: #6D28D9 !important;
  color: #FFFFFF !important;
  border-color: #6D28D9 !important;
}
.sidebar .brand strong,
.sidebar .brand small,
.sidebar-card,
.sidebar-card * { color:#FFFFFF !important; opacity:1 !important; }
.sidebar-card strong { color:#EDE9FE !important; }
/* ======================================================
   BL4CK Wealth v7.0 - Correção FORÇADA de contraste
   Regra fixa:
   Fundo roxo/escuro = texto branco/lilás claro
   Fundo claro = texto escuro
   ====================================================== */

:root{
  --bl4ck-bg: #f7f4fb;
  --bl4ck-card: #ffffff;
  --bl4ck-ink: #171122;
  --bl4ck-muted: #62586f;
  --bl4ck-purple: #7c3aed;
  --bl4ck-purple-dark: #2a104f;
  --bl4ck-dark: #15101f;
  --bl4ck-soft: #ede9fe;
  --bl4ck-success: #16a34a;
  --bl4ck-danger: #ef4444;
  --bl4ck-warning: #f97316;
  --bl4ck-border: #e6def3;
}

/* Áreas claras: sempre texto escuro */
body,
.main-content,
.panel,
.card,
.dashboard-card,
.quick-action-card,
.metric-card,
.table-card,
.sheet-entry-panel,
.onboarding-mini,
.today-agenda-card,
.content-grid .panel,
.plans-v54-choice article:not(.featured),
.v54-cycle-cards article:not(.featured),
.v54-details,
.public-footer-v51{
  color: var(--bl4ck-ink) !important;
}

.panel h1,.panel h2,.panel h3,.panel h4,
.card h1,.card h2,.card h3,.card h4,
.dashboard-card h1,.dashboard-card h2,.dashboard-card h3,.dashboard-card h4,
.quick-action-card strong,
.metric-card strong,
.table-card strong,
.v54-details h1,.v54-details h2,.v54-details h3,
.plans-v54-choice article:not(.featured) strong,
.v54-cycle-cards article:not(.featured) strong{
  color: var(--bl4ck-ink) !important;
  opacity: 1 !important;
}

.panel p,.panel small,.panel span:not(.eyebrow):not(.plan-badge),
.card p,.card small,
.dashboard-card p,.dashboard-card small,
.quick-action-card small,
.metric-card small,
.table-card small,
.muted,
.empty,
.v54-details p,
.v54-details small,
.plans-v54-choice article:not(.featured) small,
.v54-cycle-cards article:not(.featured) small{
  color: var(--bl4ck-muted) !important;
  opacity: 1 !important;
}

/* Marca na sidebar: nome precisa aparecer */
.sidebar .brand,
.app-sidebar .brand{
  border-color: rgba(255,255,255,.22) !important;
  color: #ffffff !important;
}
.sidebar .brand strong,
.app-sidebar .brand strong{
  color: #ffffff !important;
  opacity: 1 !important;
}
.sidebar .brand small,
.app-sidebar .brand small{
  color: #d8ccff !important;
  opacity: 1 !important;
}

/* Sidebar/status */
.sidebar,
.app-sidebar{
  background: #12091f !important;
  color: #ffffff !important;
}
.sidebar a,
.app-sidebar a,
.sidebar span,
.app-sidebar span{
  color: #ede9fe !important;
  opacity: 1 !important;
}
.sidebar a.active,
.app-sidebar a.active{
  background: #3b176b !important;
  color: #ffffff !important;
}
.sidebar-card,
.plan-status,
.sidebar-plan,
.status-plan{
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #ffffff !important;
}
.sidebar-card *,
.plan-status *,
.sidebar-plan *,
.status-plan *{
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Hero/cards roxos e escuros: todo texto claro */
.hero-balance,
.compact-balance,
.dashboard-balance,
.balance-card,
.card-balance,
.saldo-card,
.sheet-hero,
.notification-hero,
.reminders-hero,
.business-hero,
.projects-hero,
.price-card,
.price-card.featured,
.v54-cycle-cards article.featured,
.plans-v54-choice article.featured,
.dark-card,
.panel-dark,
.premium-card,
.onboarding-step.is-dark,
.step-card.is-dark{
  background: linear-gradient(135deg, #15101f 0%, #2a104f 50%, #5b21b6 100%) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,.14) !important;
}

.hero-balance *,
.compact-balance *,
.dashboard-balance *,
.balance-card *,
.card-balance *,
.saldo-card *,
.sheet-hero *,
.notification-hero *,
.reminders-hero *,
.business-hero *,
.projects-hero *,
.price-card *,
.v54-cycle-cards article.featured *,
.plans-v54-choice article.featured *,
.dark-card *,
.panel-dark *,
.premium-card *,
.onboarding-step.is-dark *,
.step-card.is-dark *{
  color: #ffffff !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Títulos grandes dentro de fundos roxos */
.sheet-hero h1,.sheet-hero h2,.sheet-hero h3,
.notification-hero h1,.notification-hero h2,.notification-hero h3,
.reminders-hero h1,.reminders-hero h2,.reminders-hero h3,
.business-hero h1,.business-hero h2,.business-hero h3,
.projects-hero h1,.projects-hero h2,.projects-hero h3,
.hero-balance strong,
.compact-balance strong,
.price-card h3,
.price-line strong,
.v54-cycle-cards article.featured strong,
.plans-v54-choice article.featured strong{
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Descrições dentro de fundos escuros */
.sheet-hero p,.sheet-hero small,.sheet-hero span:not(.eyebrow),
.notification-hero p,.notification-hero small,.notification-hero span:not(.eyebrow),
.reminders-hero p,.reminders-hero small,.reminders-hero span:not(.eyebrow),
.business-hero p,.business-hero small,.business-hero span:not(.eyebrow),
.projects-hero p,.projects-hero small,.projects-hero span:not(.eyebrow),
.hero-balance small,.hero-balance span,
.compact-balance small,.compact-balance span,
.price-card p,.price-card small,.price-card span,
.price-line span,
.v54-cycle-cards article.featured small,
.plans-v54-choice article.featured small{
  color: #ede9fe !important;
  opacity: 1 !important;
}

/* Eyebrow/etiquetas em fundos escuros */
.sheet-hero .eyebrow,
.notification-hero .eyebrow,
.reminders-hero .eyebrow,
.business-hero .eyebrow,
.projects-hero .eyebrow,
.price-badge{
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #ffffff !important;
}

/* Caixinhas de métricas dentro dos fundos roxos */
.hero-mini-stats div,
.business-quick-stats div,
.sheet-hero .hero-mini-stats div,
.notification-hero .hero-mini-stats div,
.reminders-hero .hero-mini-stats div,
.business-hero .hero-mini-stats div,
.projects-hero .hero-mini-stats div{
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #ffffff !important;
}
.hero-mini-stats div *,
.business-quick-stats div *,
.sheet-hero .hero-mini-stats div *,
.notification-hero .hero-mini-stats div *,
.reminders-hero .hero-mini-stats div *,
.business-hero .hero-mini-stats div *,
.projects-hero .hero-mini-stats div *{
  color: #ffffff !important;
  opacity: 1 !important;
}
.hero-mini-stats div span,
.business-quick-stats div span{
  color: #ede9fe !important;
}

/* Valores financeiros em fundos roxos: legibilidade acima de tudo */
.hero-balance strong,
.compact-balance strong,
.dashboard-balance strong,
.saldo-card strong,
.balance-card strong,
.sheet-hero strong,
.notification-hero strong,
.reminders-hero strong,
.business-hero strong,
.projects-hero strong,
.v54-cycle-cards article.featured strong,
.price-card strong{
  color: #ffffff !important;
  opacity: 1 !important;
  font-weight: 950 !important;
}
.sheet-hero strong.income,
.business-hero strong.income,
.projects-hero strong.income,
.hero-mini-stats strong.income{
  color: #bbf7d0 !important;
}
.sheet-hero strong.expense,
.business-hero strong.expense,
.projects-hero strong.expense,
.hero-mini-stats strong.expense{
  color: #fecdd3 !important;
}

/* Tabs/Entrada-Saída: quando ativo escuro, texto branco; inativo claro, texto escuro */
.segmented,
.compact-segmented,
.v5-toggle,
.choice-toggle{
  background: #f1eef8 !important;
  border: 1px solid #ddd4ee !important;
}
.segmented label span,
.compact-segmented label span,
.v5-toggle button,
.choice-toggle button{
  background: transparent !important;
  color: #4a415a !important;
  font-weight: 900 !important;
}
.segmented input:checked + span,
.compact-segmented input:checked + span,
.v5-toggle button.active,
.choice-toggle button.active{
  background: #15101f !important;
  color: #ffffff !important;
  box-shadow: 0 12px 26px rgba(21,16,31,.18) !important;
}
.segmented input:checked + span *,
.compact-segmented input:checked + span *{
  color: #ffffff !important;
}

/* Botões */
.btn-primary,
.button-primary,
.action-primary,
.btn.btn-primary{
  background: #6d28d9 !important;
  color: #ffffff !important;
  border-color: #6d28d9 !important;
}
.btn-primary *,
.button-primary *,
.action-primary *{
  color: #ffffff !important;
}
.btn-secondary,
.button-secondary,
.action-secondary,
.btn-ghost,
.btn.btn-secondary{
  background: #ffffff !important;
  color: #2a104f !important;
  border: 1px solid #d8c8ff !important;
}
.btn-secondary *,
.button-secondary *,
.action-secondary *,
.btn-ghost *{
  color: #2a104f !important;
}

/* Planos: cards escuros precisam de textos claros */
.plan-grid .price-card,
.compact-plan-grid .price-card{
  color: #ffffff !important;
}
.plan-grid .price-card h3,
.compact-plan-grid .price-card h3,
.plan-grid .price-card .price-line strong,
.compact-plan-grid .price-card .price-line strong{
  color: #ffffff !important;
}
.plan-grid .price-card p,
.compact-plan-grid .price-card p,
.plan-grid .price-card small,
.compact-plan-grid .price-card small,
.plan-grid .price-card .price-line span,
.compact-plan-grid .price-card .price-line span{
  color: #ede9fe !important;
}
.plan-grid .price-card li,
.compact-plan-grid .price-card li{
  color: #ffffff !important;
}

/* Inputs sempre legíveis */
input,select,textarea,
.form-control,
.input,
select option{
  background: #ffffff !important;
  color: #171122 !important;
  border: 1px solid #d8d0e7 !important;
}
input::placeholder,
textarea::placeholder{
  color: #8a8099 !important;
}
label{
  color: #342b43 !important;
}

/* Tabelas */
table thead th,
.table thead th,
.data-table thead th,
.sheet-table thead th{
  background: #15101f !important;
  color: #ffffff !important;
}
table tbody td,
.table tbody td,
.data-table tbody td,
.sheet-table tbody td{
  color: #171122 !important;
  background: #ffffff !important;
}

/* Links pequenos */
a,
.panel-header a,
.text-button{
  color: #5b21b6 !important;
}
.dark-card a,
.panel-dark a,
.price-card a:not(.btn),
.sheet-hero a,
.notification-hero a,
.reminders-hero a,
.business-hero a,
.projects-hero a{
  color: #ffffff !important;
}

/* Mobile bottom nav */
.mobile-bottom-nav{
  background: rgba(255,255,255,.94) !important;
  border-color: rgba(24,18,36,.10) !important;
}
.mobile-bottom-nav a{
  color: #4a415a !important;
}
.mobile-bottom-nav a.active{
  color: #6d28d9 !important;
}


/* ======================================================
   BL4CK v7.0 - CONTRASTE ESTRUTURAL ROXO ESCURO
   Última camada dentro do style.css + inline nos componentes.
   ====================================================== */
.hero-balance.compact-balance,
.dashboard-hero .hero-balance,
.sheet-hero,
.notification-hero,
.reminders-hero,
.business-hero,
.projects-hero,
.price-card.featured,
.v54-cycle-cards article.featured,
.plans-v54-choice article.featured {
  background: linear-gradient(135deg, #15101F 0%, #2A104F 48%, #5B21B6 100%) !important;
  color: #FFFFFF !important;
}
.hero-balance.compact-balance *,
.dashboard-hero .hero-balance *,
.sheet-hero *,
.notification-hero *,
.reminders-hero *,
.business-hero *,
.projects-hero *,
.price-card.featured *,
.v54-cycle-cards article.featured *,
.plans-v54-choice article.featured * {
  color: #FFFFFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.sheet-hero p,
.notification-hero p,
.reminders-hero p,
.business-hero p,
.projects-hero p,
.hero-balance.compact-balance small,
.hero-balance.compact-balance span,
.hero-mini-stats span,
.business-quick-stats span,
.price-card.featured p,
.price-card.featured small,
.price-card.featured .price-line span,
.v54-cycle-cards article.featured small,
.plans-v54-choice article.featured small {
  color: #EDE9FE !important;
  opacity: 1 !important;
}
.hero-balance.compact-balance strong,
.sheet-hero h2,
.notification-hero h2,
.reminders-hero h2,
.business-hero h2,
.projects-hero h2,
.price-card.featured h3,
.price-card.featured .price-line strong,
.v54-cycle-cards article.featured strong,
.plans-v54-choice article.featured strong {
  color: #FFFFFF !important;
  opacity: 1 !important;
}
.hero-mini-stats > div,
.business-quick-stats > div {
  background: rgba(255,255,255,.13) !important;
  border-color: rgba(255,255,255,.22) !important;
}
.hero-mini-stats > div *,
.business-quick-stats > div * {
  color: #FFFFFF !important;
  opacity: 1 !important;
}
.hero-mini-stats strong.income,
.business-quick-stats strong.income { color: #BBF7D0 !important; }
.hero-mini-stats strong.expense,
.business-quick-stats strong.expense { color: #FECDD3 !important; }
.segmented input:checked + span,
.compact-segmented input:checked + span,
.btn-primary,
a.btn-primary,
button.btn-primary,
.panel-header .btn,
.panel-header a.btn {
  background: #6D28D9 !important;
  color: #FFFFFF !important;
  border-color: #6D28D9 !important;
}
.sidebar .brand strong,
.sidebar .brand small,
.sidebar-card,
.sidebar-card * { color:#FFFFFF !important; opacity:1 !important; }
.sidebar-card strong { color:#EDE9FE !important; }

/* ======================================================
   BL4CK v7.1 - CORREÇÃO CIRÚRGICA DOS PONTOS MARCADOS
   ====================================================== */

/* 1) Planos: TODOS os cards escuros devem ter texto claro, não só o Pro */
.plan-grid.compact-plan-grid .price-card,
.plan-grid .price-card,
.compact-plan-grid article.price-card,
article.price-card.dark-price-card {
  background: linear-gradient(135deg, #15101F 0%, #2A104F 48%, #5B21B6 100%) !important;
  color: #FFFFFF !important;
}
.plan-grid.compact-plan-grid .price-card *,
.plan-grid .price-card *,
.compact-plan-grid article.price-card *,
article.price-card.dark-price-card * {
  color: #FFFFFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.plan-grid.compact-plan-grid .price-card p,
.plan-grid.compact-plan-grid .price-card small,
.plan-grid.compact-plan-grid .price-card .price-line span,
.plan-grid .price-card p,
.plan-grid .price-card small,
.plan-grid .price-card .price-line span,
article.price-card.dark-price-card p,
article.price-card.dark-price-card small,
article.price-card.dark-price-card .price-line span {
  color: #EDE9FE !important;
}
.plan-grid.compact-plan-grid .price-card h3,
.plan-grid.compact-plan-grid .price-card strong,
.plan-grid .price-card h3,
.plan-grid .price-card strong,
article.price-card.dark-price-card h3,
article.price-card.dark-price-card strong {
  color: #FFFFFF !important;
}
.plan-grid.compact-plan-grid .price-card .btn-secondary,
.plan-grid .price-card .btn-secondary,
article.price-card.dark-price-card .btn-secondary {
  background: #FFFFFF !important;
  color: #2A104F !important;
}
.plan-grid.compact-plan-grid .price-card .btn-secondary *,
.plan-grid .price-card .btn-secondary *,
article.price-card.dark-price-card .btn-secondary * {
  color: #2A104F !important;
}

/* 2) Abas Entrada/Saída: ativo roxo com texto branco, inativo claro com texto roxo escuro */
.stack-form .segmented,
.sheet-form .segmented,
.bl4ck-segmented {
  background: #F1EEFA !important;
  border: 1px solid #D9CFF0 !important;
}
.stack-form .segmented label,
.sheet-form .segmented label,
.bl4ck-segmented label {
  color: inherit !important;
}
.stack-form .segmented label span,
.sheet-form .segmented label span,
.bl4ck-segmented label span,
.stack-form .segmented .segment-option,
.sheet-form .segmented .segment-option,
.bl4ck-segmented .segment-option {
  background: transparent !important;
  color: #2A104F !important;
  opacity: 1 !important;
  font-weight: 950 !important;
}
.stack-form .segmented input[type="radio"]:checked + span,
.sheet-form .segmented input[type="radio"]:checked + span,
.bl4ck-segmented input[type="radio"]:checked + span,
.stack-form .segmented input[type="radio"]:checked + .segment-option,
.sheet-form .segmented input[type="radio"]:checked + .segment-option,
.bl4ck-segmented input[type="radio"]:checked + .segment-option {
  background: #6D28D9 !important;
  color: #FFFFFF !important;
  border-color: #6D28D9 !important;
  box-shadow: 0 12px 26px rgba(109, 40, 217, .24) !important;
}
.stack-form .segmented input[type="radio"]:checked + span *,
.sheet-form .segmented input[type="radio"]:checked + span *,
.bl4ck-segmented input[type="radio"]:checked + span * {
  color: #FFFFFF !important;
}

/* 3) Botões roxos pequenos em painéis claros */
.panel-header .btn,
.panel-header a.btn,
.today-agenda-card .btn-primary,
.business-panel .btn-primary,
.finance-panel .btn-primary,
.dashboard-panel .btn-primary,
a.btn-primary,
button.btn-primary {
  background: #6D28D9 !important;
  color: #FFFFFF !important;
  border-color: #6D28D9 !important;
}
.panel-header .btn *,
.panel-header a.btn *,
.today-agenda-card .btn-primary *,
.business-panel .btn-primary *,
.finance-panel .btn-primary *,
.dashboard-panel .btn-primary *,
a.btn-primary *,
button.btn-primary * {
  color: #FFFFFF !important;
}

/* =====================================================
   BL4CK Wealth v7.2 — correções finais dos pontos marcados
   Foco: cards de planos escuros e abas Entrada/Saída.
===================================================== */

/* Planos: TODOS os cards escuros precisam ter texto claro, não só o Pro */
.plan-grid .price-card,
.plan-grid.compact-plan-grid .price-card,
.price-card.dark-price-card,
.v54-details .price-card,
.v54-details .compact-plan-grid article,
.v54-details article.price-card {
  background: linear-gradient(135deg, #15101F 0%, #2A104F 48%, #5B21B6 100%) !important;
  color: #FFFFFF !important;
  border-color: rgba(255,255,255,.14) !important;
}

.plan-grid .price-card h1,
.plan-grid .price-card h2,
.plan-grid .price-card h3,
.plan-grid .price-card h4,
.plan-grid.compact-plan-grid .price-card h1,
.plan-grid.compact-plan-grid .price-card h2,
.plan-grid.compact-plan-grid .price-card h3,
.plan-grid.compact-plan-grid .price-card h4,
.price-card.dark-price-card h1,
.price-card.dark-price-card h2,
.price-card.dark-price-card h3,
.price-card.dark-price-card h4,
.v54-details .price-card h1,
.v54-details .price-card h2,
.v54-details .price-card h3,
.v54-details .price-card h4,
.v54-details .compact-plan-grid article h1,
.v54-details .compact-plan-grid article h2,
.v54-details .compact-plan-grid article h3,
.v54-details .compact-plan-grid article h4 {
  color: #FFFFFF !important;
  opacity: 1 !important;
}

.plan-grid .price-card p,
.plan-grid .price-card small,
.plan-grid .price-card span,
.plan-grid.compact-plan-grid .price-card p,
.plan-grid.compact-plan-grid .price-card small,
.plan-grid.compact-plan-grid .price-card span,
.price-card.dark-price-card p,
.price-card.dark-price-card small,
.price-card.dark-price-card span,
.v54-details .price-card p,
.v54-details .price-card small,
.v54-details .price-card span,
.v54-details .compact-plan-grid article p,
.v54-details .compact-plan-grid article small,
.v54-details .compact-plan-grid article span {
  color: #EDE9FE !important;
  opacity: 1 !important;
}

.plan-grid .price-card .price-line strong,
.plan-grid.compact-plan-grid .price-card .price-line strong,
.price-card.dark-price-card .price-line strong,
.v54-details .price-card .price-line strong,
.v54-details .compact-plan-grid article .price-line strong,
.plan-grid .price-card strong,
.plan-grid.compact-plan-grid .price-card strong,
.price-card.dark-price-card strong,
.v54-details .price-card strong,
.v54-details .compact-plan-grid article strong {
  color: #FFFFFF !important;
  opacity: 1 !important;
}

.plan-grid .price-card li,
.plan-grid.compact-plan-grid .price-card li,
.price-card.dark-price-card li,
.v54-details .price-card li,
.v54-details .compact-plan-grid article li {
  color: #FFFFFF !important;
  opacity: 1 !important;
}

.plan-grid .price-card .price-badge,
.plan-grid.compact-plan-grid .price-card .price-badge,
.price-card.dark-price-card .price-badge,
.v54-details .price-card .price-badge {
  color: #FFFFFF !important;
  background: rgba(255,255,255,.13) !important;
  border-color: rgba(255,255,255,.30) !important;
}

.plan-grid .price-card .btn-secondary,
.plan-grid.compact-plan-grid .price-card .btn-secondary,
.price-card.dark-price-card .btn-secondary,
.v54-details .price-card .btn-secondary,
.v54-details .compact-plan-grid article .btn-secondary {
  background: #FFFFFF !important;
  color: #2A104F !important;
  border-color: #FFFFFF !important;
}

.plan-grid .price-card .btn-secondary *,
.plan-grid.compact-plan-grid .price-card .btn-secondary *,
.price-card.dark-price-card .btn-secondary *,
.v54-details .price-card .btn-secondary *,
.v54-details .compact-plan-grid article .btn-secondary * {
  color: #2A104F !important;
}

/* Abas Entrada/Saída: força visual correto no label inteiro e no span */
.segmented,
.bl4ck-segmented,
.stack-form .segmented,
.sheet-form .segmented,
.compact-segmented {
  background: #F3EEFF !important;
  border: 1px solid #D8C7FF !important;
  box-shadow: inset 0 0 0 1px rgba(109,40,217,.04) !important;
}

.segmented label,
.bl4ck-segmented label,
.stack-form .segmented label,
.sheet-form .segmented label,
.compact-segmented label {
  color: #2A104F !important;
}

.segmented .segment-option,
.bl4ck-segmented .segment-option,
.stack-form .segmented .segment-option,
.sheet-form .segmented .segment-option,
.compact-segmented .segment-option {
  color: #2A104F !important;
  opacity: 1 !important;
  font-weight: 950 !important;
  text-shadow: none !important;
}

/* :has resolve o caso em que o input marcado está dentro do label */
.segmented label:has(input[type="radio"]:checked),
.bl4ck-segmented label:has(input[type="radio"]:checked),
.stack-form .segmented label:has(input[type="radio"]:checked),
.sheet-form .segmented label:has(input[type="radio"]:checked),
.compact-segmented label:has(input[type="radio"]:checked) {
  background: #6D28D9 !important;
  border-radius: 16px !important;
  box-shadow: 0 12px 26px rgba(109,40,217,.28) !important;
}

.segmented label:has(input[type="radio"]:checked) .segment-option,
.bl4ck-segmented label:has(input[type="radio"]:checked) .segment-option,
.stack-form .segmented label:has(input[type="radio"]:checked) .segment-option,
.sheet-form .segmented label:has(input[type="radio"]:checked) .segment-option,
.compact-segmented label:has(input[type="radio"]:checked) .segment-option,
.segmented input[type="radio"]:checked + .segment-option,
.bl4ck-segmented input[type="radio"]:checked + .segment-option,
.stack-form .segmented input[type="radio"]:checked + .segment-option,
.sheet-form .segmented input[type="radio"]:checked + .segment-option,
.compact-segmented input[type="radio"]:checked + .segment-option {
  background: #6D28D9 !important;
  color: #FFFFFF !important;
  opacity: 1 !important;
  font-weight: 950 !important;
  text-shadow: none !important;
}

/* Fallback JS: quando a classe is-active é aplicada */
.segmented label.is-active,
.bl4ck-segmented label.is-active,
.stack-form .segmented label.is-active,
.sheet-form .segmented label.is-active,
.compact-segmented label.is-active {
  background: #6D28D9 !important;
  border-radius: 16px !important;
  box-shadow: 0 12px 26px rgba(109,40,217,.28) !important;
}

.segmented label.is-active .segment-option,
.bl4ck-segmented label.is-active .segment-option,
.stack-form .segmented label.is-active .segment-option,
.sheet-form .segmented label.is-active .segment-option,
.compact-segmented label.is-active .segment-option {
  background: #6D28D9 !important;
  color: #FFFFFF !important;
  opacity: 1 !important;
  font-weight: 950 !important;
}

/* Botões roxos pequenos: texto sempre branco */
.btn-primary,
.btn.btn-primary,
a.btn-primary,
button.btn-primary,
.panel-header .btn-primary,
.finance-panel .btn-primary,
.business-panel .btn-primary,
.today-agenda-card .btn-primary,
.dashboard-panel .btn-primary,
.quick-action-card.primary {
  background: #6D28D9 !important;
  color: #FFFFFF !important;
  border-color: #6D28D9 !important;
}

.btn-primary *,
.btn.btn-primary *,
a.btn-primary *,
button.btn-primary *,
.panel-header .btn-primary *,
.finance-panel .btn-primary *,
.business-panel .btn-primary *,
.today-agenda-card .btn-primary *,
.dashboard-panel .btn-primary *,
.quick-action-card.primary * {
  color: #FFFFFF !important;
}


/* ======================================================
   BL4CK Wealth v7.3 - Correções finais de contraste fino
   - Logo da sidebar
   - Status do plano na sidebar
   - Abas Entrada/Saída ativas
   ====================================================== */
.sidebar .brand,
.app-sidebar .brand {
  color: #FFFFFF !important;
}
.sidebar .brand > span:last-child,
.app-sidebar .brand > span:last-child {
  color: #FFFFFF !important;
}
.sidebar .brand > span:last-child strong,
.app-sidebar .brand > span:last-child strong {
  color: #FFFFFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.sidebar .brand > span:last-child small,
.app-sidebar .brand > span:last-child small {
  color: #D8CCFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.sidebar-card {
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
}
.sidebar-card span,
.sidebar-card small {
  color: #F3E8FF !important;
  opacity: 1 !important;
}
.sidebar-card strong {
  color: #FFFFFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Abas Entrada/Saída: ativo precisa ficar branco de verdade */
.segmented label.is-active,
.bl4ck-segmented label.is-active,
.stack-form .segmented label.is-active,
.sheet-form .segmented label.is-active,
.compact-segmented label.is-active,
.segmented label:has(input[type="radio"]:checked),
.bl4ck-segmented label:has(input[type="radio"]:checked),
.stack-form .segmented label:has(input[type="radio"]:checked),
.sheet-form .segmented label:has(input[type="radio"]:checked),
.compact-segmented label:has(input[type="radio"]:checked) {
  color: #FFFFFF !important;
}
.segmented label.is-active span,
.bl4ck-segmented label.is-active span,
.stack-form .segmented label.is-active span,
.sheet-form .segmented label.is-active span,
.compact-segmented label.is-active span,
.segmented label:has(input[type="radio"]:checked) span,
.bl4ck-segmented label:has(input[type="radio"]:checked) span,
.stack-form .segmented label:has(input[type="radio"]:checked) span,
.sheet-form .segmented label:has(input[type="radio"]:checked) span,
.compact-segmented label:has(input[type="radio"]:checked) span,
.segmented input[type="radio"]:checked + .segment-option,
.bl4ck-segmented input[type="radio"]:checked + .segment-option,
.stack-form .segmented input[type="radio"]:checked + .segment-option,
.sheet-form .segmented input[type="radio"]:checked + .segment-option,
.compact-segmented input[type="radio"]:checked + .segment-option {
  color: #FFFFFF !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* ======================================================
   BL4CK Wealth v7.5 - Refinamentos de UX
   ====================================================== */
.editing-panel {
  outline: 2px solid rgba(124, 58, 237, .18);
  box-shadow: 0 20px 55px rgba(124, 58, 237, .12) !important;
}
.ux-empty-state,
.empty-state-card.ux-empty-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px;
  border-radius: 22px;
  background: linear-gradient(135deg, #FFFFFF 0%, #F4EEFF 100%) !important;
  border: 1px dashed #CDBDFD !important;
  color: #171122 !important;
}
.ux-empty-state > span {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: #EDE9FE;
  color: #6D28D9;
  font-size: 1.4rem;
  flex: 0 0 auto;
}
.ux-empty-state strong { color: #171122 !important; display:block; margin-bottom:4px; }
.ux-empty-state p { color: #62586F !important; margin:0; }
.empty-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.table-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.table-actions form { margin: 0; }
.mini-button.danger-mini,
.danger-mini {
  background: #FEF2F2 !important;
  color: #B91C1C !important;
  border-color: #FECACA !important;
}
.ux-filter-tabs a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.fab-menu {
  min-width: 190px;
}
.fab-menu a {
  font-weight: 900;
}
.notification-list-page .ux-empty-state { margin-top: 10px; }
.push-diagnostic {
  margin-top: 12px;
}
@media (max-width: 760px) {
  .ux-empty-state,
  .empty-state-card.ux-empty-state {
    align-items: flex-start;
    flex-direction: column;
  }
  .empty-actions { width: 100%; }
  .empty-actions .btn { flex: 1; min-width: 140px; }
  .table-actions { justify-content: flex-start; }
  .table-actions .mini-button { flex: 1; text-align:center; }
}

/* ======================================================
   BL4CK Wealth v7.6 - Responsividade mobile real
   Resolve edição/exclusão/valores em celular e PWA
   ====================================================== */

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overscroll-behavior-x: none;
}

.app-shell,
.main-content,
.page-shell,
.panel,
.stat-card,
.hero-card,
.compact-hero,
.finance-panel,
.dashboard-panel,
.business-panel,
.visual-sheet-panel,
.sheet-entry-panel {
  min-width: 0;
  max-width: 100%;
}

input,
select,
textarea,
button,
.btn,
.mini-button {
  max-width: 100%;
}

.table-wrap,
.sheet-wrap,
.mini-sheet-wrap,
.mobile-scroll-x {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.table-wrap table {
  width: max-content;
  min-width: 720px;
}

.table-wrap .visual-sheet,
.table-wrap .mini-sheet,
.table-wrap .business-table {
  width: max-content;
  min-width: 860px;
}

.table-actions {
  min-width: 150px;
  white-space: nowrap;
}

.table-actions .mini-button,
.table-actions button,
.table-actions a {
  white-space: nowrap;
}

/* Indicador sutil de rolagem quando uma tabela ainda precisar deslizar */
.table-wrap::after,
.sheet-wrap::after,
.mini-sheet-wrap::after {
  content: '';
  position: sticky;
  right: 0;
  top: 0;
  bottom: 0;
  width: 18px;
  min-height: 1px;
  display: block;
  float: right;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(124,58,237,.10));
}

@media (max-width: 860px) {
  .main-content {
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
  }

  .topbar {
    max-width: 100%;
  }

  .panel,
  .stat-card,
  .hero-card,
  .compact-hero,
  .finance-panel,
  .business-panel,
  .dashboard-panel {
    width: 100%;
    max-width: 100%;
  }

  .stats-grid,
  .content-grid,
  .two-columns,
  .form-layout,
  .dashboard-grid,
  .business-dashboard-grid,
  .business-today-grid,
  .project-summary-grid,
  .onboarding-grid,
  .plans-grid,
  .plan-grid,
  .quick-actions-grid {
    grid-template-columns: 1fr !important;
  }

  .panel-header,
  .compact-header,
  .campaign-card {
    flex-direction: column;
    align-items: stretch;
  }

  .panel-header .btn,
  .compact-header .btn,
  .panel-header a,
  .compact-header a {
    width: 100%;
  }

  .input-grid,
  .details-grid,
  .business-form,
  .compact-form,
  .stack-form,
  .sheet-form {
    grid-template-columns: 1fr !important;
    width: 100%;
    max-width: 100%;
  }

  .sheet-form > *,
  .business-form > *,
  .compact-form > *,
  .stack-form > *,
  .input-grid > *,
  .details-grid > * {
    grid-column: 1 / -1 !important;
    min-width: 0;
    width: 100%;
  }

  .segmented,
  .compact-segmented,
  .bl4ck-segmented {
    width: 100%;
    max-width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .segmented label,
  .compact-segmented label,
  .bl4ck-segmented label,
  .segment-option {
    min-width: 0;
    width: 100%;
  }

  label {
    width: 100%;
    min-width: 0;
  }

  label input,
  label select,
  label textarea {
    width: 100%;
    min-width: 0;
  }

  .project-filter-row,
  .ux-filter-tabs,
  .filter-tabs,
  .notification-feature-list {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
  }

  .project-filter-row > *,
  .ux-filter-tabs > *,
  .filter-tabs > *,
  .notification-feature-list > * {
    flex: 0 0 auto;
  }
}

/* Em telas pequenas, as tabelas principais viram cards.
   Assim Editar/Excluir ficam sempre visíveis, sem precisar arrastar para o lado. */
@media (max-width: 720px) {
  .table-wrap {
    overflow-x: visible !important;
  }

  .table-wrap table,
  .table-wrap .visual-sheet,
  .table-wrap .business-table,
  .table-wrap .mini-sheet {
    width: 100% !important;
    min-width: 0 !important;
    border-spacing: 0 12px !important;
  }

  .table-wrap table thead {
    display: none !important;
  }

  .table-wrap table,
  .table-wrap table tbody,
  .table-wrap table tr,
  .table-wrap table td {
    display: block;
    width: 100%;
  }

  .table-wrap table tr {
    margin-bottom: 12px;
    padding: 14px;
    border: 1px solid rgba(124,58,237,.14);
    border-radius: 18px;
    background: #FFFFFF;
    box-shadow: 0 14px 34px rgba(17, 12, 26, .06);
  }

  .table-wrap table td {
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(42,16,79,.08) !important;
    color: #171122;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  .table-wrap table td:last-child {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .table-wrap table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    color: #6B5D7C;
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .10em;
    text-transform: uppercase;
  }

  .table-wrap table td[data-label=""],
  .table-wrap table td:not([data-label]) {
    padding-top: 6px !important;
  }

  .table-wrap table td[data-label=""]::before,
  .table-wrap table td:not([data-label])::before {
    content: none;
  }

  .table-wrap table .table-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    min-width: 0;
    white-space: normal;
  }

  .table-wrap table .table-actions form,
  .table-wrap table .table-actions a,
  .table-wrap table .table-actions button {
    width: 100%;
  }

  .table-wrap table .table-actions .mini-button,
  .table-wrap table .table-actions button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .table-wrap table .empty-row,
  .table-wrap table .empty-row td {
    display: block;
  }

  .table-wrap table .empty-row td {
    text-align: left;
  }

  .table-wrap::after,
  .sheet-wrap::after,
  .mini-sheet-wrap::after {
    content: none !important;
  }

  .visual-sheet tfoot,
  .mini-sheet tfoot {
    display: block;
    width: 100%;
  }

  .visual-sheet tfoot tr,
  .mini-sheet tfoot tr {
    display: grid !important;
    gap: 8px;
    background: #F7F3FF;
  }

  .visual-sheet tfoot th,
  .visual-sheet tfoot td,
  .mini-sheet tfoot th,
  .mini-sheet tfoot td {
    display: block;
    width: 100%;
    padding: 8px 0 !important;
    border: 0 !important;
    color: #171122 !important;
  }
}

/* Ajustes extra para PWA/iOS com atalho na tela inicial */
@media (display-mode: standalone) and (max-width: 860px) {
  body {
    min-height: 100dvh;
  }

  .main-content {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
    padding-bottom: calc(104px + env(safe-area-inset-bottom));
  }

  .topbar {
    padding-top: max(8px, env(safe-area-inset-top));
  }
}


/* ======================================================
   BL4CK Wealth v7.7 - caixa real x previsões
   ====================================================== */
.projection-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: linear-gradient(135deg, rgba(124,58,237,.10), rgba(34,197,94,.08)) !important;
}
.projection-strip > div:first-child {
  min-width: 240px;
}
.projection-strip strong {
  color: #171122;
}
.projection-strip small {
  display: block;
  margin-top: 4px;
  color: #5B5368;
  line-height: 1.45;
}
.projection-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(120px, 1fr));
  gap: 10px;
  width: min(560px, 100%);
}
.projection-grid > div {
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(124,58,237,.16);
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 10px 28px rgba(23,17,34,.06);
}
.projection-grid span {
  display: block;
  color: #6B6278;
  font-weight: 900;
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 6px;
}
.projection-grid strong {
  display: block;
  font-size: 1.05rem;
  color: #171122;
}
.visual-sheet td small,
.table-wrap td small {
  display: block;
  margin-top: 4px;
  color: #6B6278;
  font-weight: 800;
}
@media (max-width: 760px) {
  .projection-strip {
    display: block;
  }
  .projection-grid {
    grid-template-columns: 1fr;
    margin-top: 14px;
  }
}


/* ======================================================
   BL4CK Wealth v7.8 - Funcionamento financeiro mais claro
   ====================================================== */
.finance-core-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0 16px}.finance-core-card,.today-card{background:#fff;border:1px solid rgba(18,13,31,.08);border-radius:22px;padding:18px;box-shadow:0 12px 34px rgba(18,13,31,.06)}.finance-core-card span,.today-card span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:950;color:#71677f;margin-bottom:8px}.finance-core-card strong,.today-card strong{display:block;font-size:clamp(1.35rem,3vw,2.05rem);color:#14101f;letter-spacing:-.04em}.finance-core-card small,.today-card small{display:block;color:#71677f;margin-top:6px}.finance-core-card.real{background:linear-gradient(135deg,#15101f,#2a104f 50%,#5b21b6);color:#fff}.finance-core-card.real span,.finance-core-card.real strong,.finance-core-card.real small{color:#fff}.finance-core-card.income strong,.today-card.success strong,.category-summary-item .income{color:#16a34a}.finance-core-card.expense strong,.today-card.danger strong,.category-summary-item .expense{color:#dc2626}.finance-core-card.projected strong{color:#6d28d9}.dashboard-focus-actions{grid-template-columns:repeat(3,1fr);margin-bottom:16px}.today-hero,.summary-hero{display:grid;grid-template-columns:1fr minmax(260px,360px);gap:18px;align-items:center;border-radius:30px;padding:30px;margin-bottom:16px}.today-hero h2,.summary-hero h2{font-size:clamp(2rem,5vw,4rem);line-height:.96;letter-spacing:-.07em;margin:8px 0}.today-hero p,.summary-hero p{color:#ede9fe!important;max-width:720px}.today-balance-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:24px;padding:20px;color:#fff}.today-balance-card span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:950;color:#ede9fe}.today-balance-card strong{display:block;color:#fff!important;font-size:2.1rem;margin:8px 0}.today-balance-card small{color:#ede9fe}.today-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.today-card.warning strong{color:#d97706}.agenda-card-list{display:grid;gap:10px}.agenda-finance-card{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;background:#faf9ff;border:1px solid rgba(18,13,31,.08);border-radius:18px;padding:14px}.agenda-finance-card.late{border-color:rgba(220,38,38,.22);background:#fff5f5}.agenda-finance-card span{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#71677f;font-weight:950}.agenda-finance-card strong{display:block;color:#14101f}.agenda-finance-card small{display:block;color:#71677f}.agenda-finance-value{text-align:right}.mini-button.success-mini{background:#dcfce7!important;color:#166534!important;border-color:#bbf7d0!important}.category-summary-list{display:grid;gap:10px}.category-summary-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border-radius:16px;background:#faf9ff;border:1px solid rgba(18,13,31,.08)}.category-summary-item span{font-weight:850;color:#4b425c}.category-summary-item strong{font-size:1.1rem}.pill.late{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important}.pill.expected{background:#fef3c7!important;color:#92400e!important}.pill.pending{background:#ffedd5!important;color:#9a3412!important}.pill.received{background:#dcfce7!important;color:#166534!important}.pill.paid{background:#e0e7ff!important;color:#3730a3!important}
@media(max-width:980px){.finance-core-grid,.today-grid{grid-template-columns:repeat(2,1fr)}.today-hero,.summary-hero{grid-template-columns:1fr}.dashboard-focus-actions{grid-template-columns:1fr 1fr 1fr}.agenda-finance-card{grid-template-columns:1fr}.agenda-finance-value{text-align:left}.agenda-finance-card form{width:100%}.agenda-finance-card .mini-button{width:100%;justify-content:center}}
@media(max-width:640px){.finance-core-grid,.today-grid,.dashboard-focus-actions{grid-template-columns:1fr}.finance-core-card,.today-card{padding:16px}.today-hero,.summary-hero{border-radius:24px;padding:20px}.today-balance-card strong{font-size:1.75rem}.category-summary-item{align-items:flex-start;flex-direction:column}.main-content{overflow-x:hidden}.table-actions form{width:100%}.table-actions .mini-button{width:100%;justify-content:center}}

/* ======================================================
   BL4CK Wealth v7.9 - Revisão final de contraste
   Regra definitiva:
   Fundo escuro/roxo = texto claro
   Fundo claro = texto escuro
   ====================================================== */
:root {
  --bl4ck-ink-final: #171122;
  --bl4ck-muted-final: #62586F;
  --bl4ck-white-final: #FFFFFF;
  --bl4ck-soft-final: #EDE9FE;
  --bl4ck-green-soft-final: #BBF7D0;
  --bl4ck-purple-final: #6D28D9;
  --bl4ck-purple-dark-final: #2A104F;
}

/* Cards escuros principais */
.hero-balance,
.compact-balance,
.sheet-hero,
.notification-hero,
.reminders-hero,
.business-hero,
.projects-hero,
.price-card.featured,
.price-card.dark-price-card,
.panel-dark,
.dark-card,
.premium-card,
.dashboard-dark-card {
  color: var(--bl4ck-white-final) !important;
}
.hero-balance h1,.hero-balance h2,.hero-balance h3,.hero-balance strong,.hero-balance .value,
.compact-balance h1,.compact-balance h2,.compact-balance h3,.compact-balance strong,.compact-balance .value,
.sheet-hero h1,.sheet-hero h2,.sheet-hero h3,.sheet-hero strong,.sheet-hero .value,
.notification-hero h1,.notification-hero h2,.notification-hero h3,.notification-hero strong,.notification-hero .value,
.reminders-hero h1,.reminders-hero h2,.reminders-hero h3,.reminders-hero strong,.reminders-hero .value,
.business-hero h1,.business-hero h2,.business-hero h3,.business-hero strong,.business-hero .value,
.projects-hero h1,.projects-hero h2,.projects-hero h3,.projects-hero strong,.projects-hero .value,
.price-card.featured h1,.price-card.featured h2,.price-card.featured h3,.price-card.featured strong,.price-card.featured .price-line,
.price-card.dark-price-card h1,.price-card.dark-price-card h2,.price-card.dark-price-card h3,.price-card.dark-price-card strong,.price-card.dark-price-card .price-line,
.panel-dark h1,.panel-dark h2,.panel-dark h3,.panel-dark strong,
.dark-card h1,.dark-card h2,.dark-card h3,.dark-card strong,
.premium-card h1,.premium-card h2,.premium-card h3,.premium-card strong {
  color: var(--bl4ck-white-final) !important;
  opacity: 1 !important;
}
.hero-balance p,.hero-balance small,.hero-balance span,
.compact-balance p,.compact-balance small,.compact-balance span,
.sheet-hero p,.sheet-hero small,.sheet-hero span,
.notification-hero p,.notification-hero small,.notification-hero span,
.reminders-hero p,.reminders-hero small,.reminders-hero span,
.business-hero p,.business-hero small,.business-hero span,
.projects-hero p,.projects-hero small,.projects-hero span,
.price-card.featured p,.price-card.featured small,.price-card.featured li,
.price-card.dark-price-card p,.price-card.dark-price-card small,.price-card.dark-price-card li,
.panel-dark p,.panel-dark small,.panel-dark span,
.dark-card p,.dark-card small,.dark-card span,
.premium-card p,.premium-card small,.premium-card span {
  color: var(--bl4ck-soft-final) !important;
  opacity: 1 !important;
}

/* Sidebar e status do plano */
.sidebar .brand strong,
.app-sidebar .brand strong { color: #FFFFFF !important; opacity: 1 !important; }
.sidebar .brand small,
.app-sidebar .brand small { color: #D8CCFF !important; opacity: 1 !important; }
.sidebar-card span { color: #F3E8FF !important; opacity: 1 !important; }
.sidebar-card strong { color: var(--bl4ck-green-soft-final) !important; opacity: 1 !important; }

/* Abas Entrada/Saída: ativo escuro para leitura sobre roxo claro/azul */
.segmented label.is-active .segment-option,
.bl4ck-segmented label.is-active .segment-option,
.stack-form .segmented label.is-active .segment-option,
.sheet-form .segmented label.is-active .segment-option,
.compact-segmented label.is-active .segment-option,
.segmented input[type="radio"]:checked + .segment-option,
.bl4ck-segmented input[type="radio"]:checked + .segment-option,
.stack-form .segmented input[type="radio"]:checked + .segment-option,
.sheet-form .segmented input[type="radio"]:checked + .segment-option,
.compact-segmented input[type="radio"]:checked + .segment-option {
  color: var(--bl4ck-purple-dark-final) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Botões */
.btn-primary,
a.btn-primary,
button.btn-primary,
.btn.btn-primary {
  background: var(--bl4ck-purple-final) !important;
  border-color: var(--bl4ck-purple-final) !important;
  color: #FFFFFF !important;
}
.btn-primary *, a.btn-primary *, button.btn-primary *, .btn.btn-primary * { color: #FFFFFF !important; }
.btn-secondary,
a.btn-secondary,
button.btn-secondary {
  background: #FFFFFF !important;
  color: var(--bl4ck-purple-dark-final) !important;
  border-color: #DDD6FE !important;
}
.btn-secondary *, a.btn-secondary *, button.btn-secondary * { color: var(--bl4ck-purple-dark-final) !important; }

/* Campos e tabelas */
input, select, textarea {
  background: #FFFFFF !important;
  color: var(--bl4ck-ink-final) !important;
  border-color: #D8D2E6 !important;
}
input::placeholder, textarea::placeholder { color: #8A8299 !important; }
table thead th,.table thead th,.data-table thead th,.sheet-table thead th {
  background: #171122 !important;
  color: #FFFFFF !important;
}
table tbody td,.table tbody td,.data-table tbody td,.sheet-table tbody td {
  color: var(--bl4ck-ink-final) !important;
}


/* ======================================================
   BL4CK Wealth v8.0 - Final: contraste consistente + sem texto preto em fundo roxo
   Regra: fundo escuro/roxo = texto claro; fundo claro = texto escuro.
   ====================================================== */
:root{
  --bl4ck-v80-light:#FFFFFF;
  --bl4ck-v80-soft:#F3E8FF;
  --bl4ck-v80-muted:#EDE9FE;
  --bl4ck-v80-dark:#171122;
  --bl4ck-v80-purple:#6D28D9;
  --bl4ck-v80-green:#BBF7D0;
}
.panel-dark,
.dark-card,
.premium-card,
.hero-balance,
.compact-balance,
.sheet-hero,
.notification-hero,
.reminders-hero,
.business-hero,
.projects-hero,
.today-hero,
.summary-hero,
.today-balance-card,
.finance-core-card.real{
  color:var(--bl4ck-v80-light) !important;
}
.panel-dark *,
.dark-card *,
.premium-card *,
.hero-balance *,
.compact-balance *,
.sheet-hero *,
.notification-hero *,
.reminders-hero *,
.business-hero *,
.projects-hero *,
.today-hero *,
.summary-hero *,
.today-balance-card *,
.finance-core-card.real *{
  color:var(--bl4ck-v80-light) !important;
  opacity:1 !important;
  text-shadow:none !important;
}
.panel-dark p,.panel-dark small,
.dark-card p,.dark-card small,
.premium-card p,.premium-card small,
.hero-balance span,.hero-balance small,
.compact-balance span,.compact-balance small,
.sheet-hero p,.sheet-hero small,
.notification-hero p,.notification-hero small,
.reminders-hero p,.reminders-hero small,
.business-hero p,.business-hero small,
.projects-hero p,.projects-hero small,
.today-hero p,.today-hero small,
.summary-hero p,.summary-hero small,
.today-balance-card span,.today-balance-card small,
.finance-core-card.real small{
  color:var(--bl4ck-v80-muted) !important;
  opacity:1 !important;
}
.finance-core-card.real strong,
.today-balance-card strong,
.panel-dark h1,.panel-dark h2,.panel-dark h3,
.dark-card h1,.dark-card h2,.dark-card h3,
.premium-card h1,.premium-card h2,.premium-card h3,
.today-hero h1,.today-hero h2,.today-hero h3,
.summary-hero h1,.summary-hero h2,.summary-hero h3{
  color:var(--bl4ck-v80-light) !important;
}
.btn-primary,a.btn-primary,button.btn-primary,
.btn-purple,.btn-gradient,.action-button,
.panel-header .btn,.panel-header a.btn,
.panel-header .btn-primary,.panel-header a.btn-primary{
  background:var(--bl4ck-v80-purple) !important;
  color:var(--bl4ck-v80-light) !important;
  border-color:var(--bl4ck-v80-purple) !important;
}
.btn-primary *,a.btn-primary *,button.btn-primary *,
.btn-purple *,.btn-gradient *,.action-button *,
.panel-header .btn *,.panel-header a.btn *,
.panel-header .btn-primary *,.panel-header a.btn-primary *{
  color:var(--bl4ck-v80-light) !important;
  opacity:1 !important;
}
.segmented input:checked + span,
.compact-segmented input:checked + span,
.segmented label.is-active,
.compact-segmented label.is-active,
.segmented label.is-active .segment-option,
.compact-segmented label.is-active .segment-option,
.segmented label:has(input[type="radio"]:checked),
.compact-segmented label:has(input[type="radio"]:checked),
.segmented label:has(input[type="radio"]:checked) .segment-option,
.compact-segmented label:has(input[type="radio"]:checked) .segment-option{
  color:var(--bl4ck-v80-light) !important;
  opacity:1 !important;
  text-shadow:none !important;
}
.sidebar .brand strong,.app-sidebar .brand strong,.topbar-mobile-brand strong{
  color:var(--bl4ck-v80-light) !important;
  opacity:1 !important;
}
.sidebar .brand small,.app-sidebar .brand small{
  color:#D8CCFF !important;
  opacity:1 !important;
}
.sidebar-card strong{color:var(--bl4ck-v80-green) !important;opacity:1 !important;}
.sidebar-card span,.sidebar-card small{color:var(--bl4ck-v80-soft) !important;opacity:1 !important;}
input,select,textarea{background:#FFFFFF !important;color:var(--bl4ck-v80-dark) !important;}
input::placeholder,textarea::placeholder{color:#8D849D !important;opacity:1 !important;}


/* ======================================================
   BL4CK Wealth v8.1 - Blindagem final de contraste
   REGRA FIXA:
   fundo roxo/escuro => texto claro;
   fundo claro => texto escuro;
   botões roxos => texto branco.
   Também neutraliza regras antigas que deixavam texto escuro em card roxo.
   ====================================================== */
:root{
  --bl4ck-ink:#171122;
  --bl4ck-soft-ink:#5F5570;
  --bl4ck-white:#FFFFFF;
  --bl4ck-lilac:#F3E8FF;
  --bl4ck-lilac-2:#EDE9FE;
  --bl4ck-purple:#6D28D9;
  --bl4ck-purple-dark:#2A104F;
  --bl4ck-green-soft:#BBF7D0;
}

/* Áreas escuras/roxas conhecidas do app */
.panel-dark,
.dark-card,
.premium-card,
.hero-balance,
.compact-balance,
.sheet-hero,
.notification-hero,
.reminders-hero,
.business-hero,
.projects-hero,
.today-hero,
.summary-hero,
.today-balance-card,
.finance-core-card.real,
.stat-card.glow,
.price-card.featured,
.plans-v54-choice article.featured,
.v54-cycle-cards article.featured,
[class*="purple-card"],
[class*="dark-panel"],
[class*="dark-card"]{
  color:var(--bl4ck-white) !important;
}

/* Tudo dentro de fundo escuro/roxo começa claro */
.panel-dark :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.dark-card :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.premium-card :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.hero-balance :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.compact-balance :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.sheet-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.notification-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.reminders-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.business-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.projects-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.today-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.summary-hero :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.today-balance-card :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.finance-core-card.real :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.stat-card.glow :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.price-card.featured :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.plans-v54-choice article.featured :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a),
.v54-cycle-cards article.featured :where(h1,h2,h3,h4,h5,h6,strong,b,span,small,p,em,i,label,div,a){
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
  text-shadow:none !important;
}

/* Textos secundários dentro de fundo escuro/roxo */
.panel-dark :where(p,small,span:not(.btn):not(.nav-badge)),
.dark-card :where(p,small,span:not(.btn):not(.nav-badge)),
.premium-card :where(p,small,span:not(.btn):not(.nav-badge)),
.hero-balance :where(p,small,span:not(.btn):not(.nav-badge)),
.compact-balance :where(p,small,span:not(.btn):not(.nav-badge)),
.sheet-hero :where(p,small),
.notification-hero :where(p,small),
.reminders-hero :where(p,small),
.business-hero :where(p,small),
.projects-hero :where(p,small),
.today-hero :where(p,small),
.summary-hero :where(p,small),
.today-balance-card :where(span,small),
.finance-core-card.real :where(span,small){
  color:var(--bl4ck-lilac-2) !important;
}

/* Valores grandes/números em card roxo sempre brancos */
.panel-dark strong,
.dark-card strong,
.premium-card strong,
.hero-balance strong,
.compact-balance strong,
.today-balance-card strong,
.finance-core-card.real strong,
.stat-card.glow strong,
.price-card.featured strong,
.plans-v54-choice article.featured strong,
.v54-cycle-cards article.featured strong,
.panel-dark .amount,
.dark-card .amount,
.premium-card .amount,
.hero-balance .amount,
.today-balance-card .amount{
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
  text-shadow:none !important;
}

/* Links de ação no cabeçalho de painéis viram botão legível */
.panel-header > a,
.compact-header > a,
.panel-header .text-button,
.compact-header .text-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:38px !important;
  padding:10px 16px !important;
  border-radius:999px !important;
  background:var(--bl4ck-purple) !important;
  border:1px solid rgba(109,40,217,.22) !important;
  color:var(--bl4ck-white) !important;
  font-weight:900 !important;
  box-shadow:0 14px 30px rgba(109,40,217,.24) !important;
}
.panel-header > a *,
.compact-header > a *,
.panel-header .text-button *,
.compact-header .text-button *{
  color:var(--bl4ck-white) !important;
}

/* Botão roxo em qualquer lugar */
.btn-primary,
.btn.btn-primary,
a.btn-primary,
button.btn-primary,
.btn-purple,
.btn-gradient,
.action-button,
button[type="submit"].btn-primary{
  background:var(--bl4ck-purple) !important;
  color:var(--bl4ck-white) !important;
  border-color:var(--bl4ck-purple) !important;
}
.btn-primary *,
.btn.btn-primary *,
a.btn-primary *,
button.btn-primary *,
.btn-purple *,
.btn-gradient *,
.action-button *{
  color:var(--bl4ck-white) !important;
}

/* Botão secundário claro */
.btn-secondary,
.btn.btn-secondary,
a.btn-secondary,
button.btn-secondary{
  background:#FFFFFF !important;
  color:var(--bl4ck-purple-dark) !important;
  border-color:#D8C8FF !important;
}
.btn-secondary *,.btn.btn-secondary *,a.btn-secondary *,button.btn-secondary *{
  color:var(--bl4ck-purple-dark) !important;
}

/* Entrada/Saída ativa: como o fundo ativo é roxo, o texto fica claro */
.segmented input:checked + span,
.compact-segmented input:checked + span,
.segmented label.is-active,
.compact-segmented label.is-active,
.segmented label.is-active .segment-option,
.compact-segmented label.is-active .segment-option,
.segmented label:has(input[type="radio"]:checked),
.compact-segmented label:has(input[type="radio"]:checked),
.segmented label:has(input[type="radio"]:checked) .segment-option,
.compact-segmented label:has(input[type="radio"]:checked) .segment-option,
.segmented input[type="radio"]:checked + .segment-option,
.compact-segmented input[type="radio"]:checked + .segment-option{
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
  text-shadow:none !important;
}

/* Cards claros continuam com fonte escura */
.panel:not(.panel-dark):not(.dark-card):not(.premium-card),
.card:not(.dark-card):not(.premium-card),
.stat-card:not(.glow),
.finance-core-card:not(.real),
.today-card,
.ux-empty-state,
.empty-state-card{
  color:var(--bl4ck-ink) !important;
}
.panel:not(.panel-dark):not(.dark-card):not(.premium-card) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.card:not(.dark-card):not(.premium-card) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.stat-card:not(.glow) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.finance-core-card:not(.real) :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.today-card :where(h1,h2,h3,h4,h5,h6,strong,b,label),
.ux-empty-state strong,
.empty-state-card strong{
  color:var(--bl4ck-ink) !important;
}
.panel:not(.panel-dark):not(.dark-card):not(.premium-card) :where(p,small,span),
.card:not(.dark-card):not(.premium-card) :where(p,small,span),
.stat-card:not(.glow) :where(p,small,span),
.finance-core-card:not(.real) :where(p,small,span),
.today-card :where(p,small,span),
.ux-empty-state p,
.empty-state-card p{
  color:var(--bl4ck-soft-ink) !important;
}

/* Exceções: valores positivos/negativos mantêm semântica */
.income{color:#16A34A !important;}
.expense{color:#DC2626 !important;}

/* Sidebar */
.sidebar .brand strong,.app-sidebar .brand strong,.topbar-mobile-brand strong{
  color:var(--bl4ck-white) !important;
  opacity:1 !important;
}
.sidebar .brand small,.app-sidebar .brand small{
  color:#D8CCFF !important;
  opacity:1 !important;
}
.sidebar-card strong{
  color:var(--bl4ck-green-soft) !important;
  opacity:1 !important;
}
.sidebar-card span,.sidebar-card small{
  color:var(--bl4ck-lilac) !important;
  opacity:1 !important;
}

/* Formulários claros */
input,select,textarea{
  background:#FFFFFF !important;
  color:var(--bl4ck-ink) !important;
}
input::placeholder,textarea::placeholder{
  color:#8D849D !important;
  opacity:1 !important;
}


/* ======================================================
   BL4CK v8.5 - Abas Entrada/Saída com fonte escura
   Pedido: botão roxo desse tipo deve ter texto mais escuro
   ====================================================== */
.segmented input:checked + span,
.compact-segmented input:checked + span,
.bl4ck-segmented input:checked + span,
.stack-form .segmented input:checked + span,
.sheet-form .segmented input:checked + span,
.segmented label.is-active,
.compact-segmented label.is-active,
.bl4ck-segmented label.is-active,
.stack-form .segmented label.is-active,
.sheet-form .segmented label.is-active,
.segmented label.is-active .segment-option,
.compact-segmented label.is-active .segment-option,
.bl4ck-segmented label.is-active .segment-option,
.stack-form .segmented label.is-active .segment-option,
.sheet-form .segmented label.is-active .segment-option,
.segmented label:has(input[type="radio"]:checked),
.compact-segmented label:has(input[type="radio"]:checked),
.bl4ck-segmented label:has(input[type="radio"]:checked),
.stack-form .segmented label:has(input[type="radio"]:checked),
.sheet-form .segmented label:has(input[type="radio"]:checked),
.segmented label:has(input[type="radio"]:checked) .segment-option,
.compact-segmented label:has(input[type="radio"]:checked) .segment-option,
.bl4ck-segmented label:has(input[type="radio"]:checked) .segment-option,
.stack-form .segmented label:has(input[type="radio"]:checked) .segment-option,
.sheet-form .segmented label:has(input[type="radio"]:checked) .segment-option,
.segmented input[type="radio"]:checked + .segment-option,
.compact-segmented input[type="radio"]:checked + .segment-option,
.bl4ck-segmented input[type="radio"]:checked + .segment-option,
.stack-form .segmented input[type="radio"]:checked + .segment-option,
.sheet-form .segmented input[type="radio"]:checked + .segment-option {
  color: #2A104F !important;
  opacity: 1 !important;
  font-weight: 950 !important;
  text-shadow: none !important;
}


/* ======================================================
   BL4CK v8.6 - Status do plano na sidebar em verde
   ====================================================== */
.sidebar-card strong,
.sidebar .sidebar-card strong,
.app-sidebar .sidebar-card strong {
  color: #22C55E !important;
  opacity: 1 !important;
  font-weight: 950 !important;
  text-shadow: none !important;
}

.sidebar-card span,
.sidebar .sidebar-card span,
.app-sidebar .sidebar-card span {
  color: #F3E8FF !important;
  opacity: 1 !important;
}


/* ======================================================
   BL4CK Wealth v8.7 - Imagens estratégicas do produto
   ====================================================== */
.bl4ck-visual-card,.bl4ck-visual-hero,.bl4ck-app-mockup-card{overflow:hidden;border-radius:30px;border:1px solid rgba(124,58,237,.16);background:linear-gradient(135deg,#15101F 0%,#2A104F 52%,#5B21B6 100%);box-shadow:0 26px 70px rgba(42,16,79,.16)}
.bl4ck-visual-card img,.bl4ck-visual-hero img,.bl4ck-app-mockup-card img{display:block;width:100%;height:100%;object-fit:cover}
.bl4ck-auth-visual{margin:18px 0;min-height:360px}.bl4ck-auth-visual img{aspect-ratio:4/3}.bl4ck-dashboard-mockup{margin:18px 0;min-height:280px}.bl4ck-dashboard-mockup img{max-height:420px}.bl4ck-empty-visual{margin:18px 0;border-radius:22px;overflow:hidden;border:1px solid rgba(124,58,237,.12)}.bl4ck-empty-visual img{width:100%;display:block}.bl4ck-branding-strip{margin:22px 0;border-radius:28px;overflow:hidden;border:1px solid rgba(124,58,237,.16)}.bl4ck-branding-strip img{width:100%;display:block}.bl4ck-icon-preview{margin:18px 0;border-radius:24px;overflow:hidden;border:1px solid rgba(124,58,237,.12)}.bl4ck-icon-preview img{width:100%;display:block}
@media(max-width:760px){.bl4ck-auth-visual,.bl4ck-dashboard-mockup{min-height:auto;border-radius:24px}.bl4ck-auth-visual img,.bl4ck-dashboard-mockup img{aspect-ratio:9/10;max-height:none}}


/* BL4CK Wealth v8.8 - ajuste funcional do caixa real */
.balance-adjust-details{margin-top:12px;color:#fff!important}
.balance-adjust-details summary{cursor:pointer;color:#fff!important;font-weight:900;font-size:.82rem;list-style:none;text-decoration:underline;text-underline-offset:3px}
.balance-adjust-details summary::-webkit-details-marker{display:none}
.balance-adjust-form{margin-top:12px;display:grid;gap:10px;padding:12px;border-radius:16px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18)}
.balance-adjust-form label{display:grid;gap:6px;color:#fff!important;font-size:.78rem;font-weight:800}
.balance-adjust-form input{width:100%;background:#fff!important;color:#171122!important;border:1px solid rgba(255,255,255,.4)!important;border-radius:12px;padding:11px 12px;font-weight:900}
.balance-adjust-form .btn-secondary{width:100%;min-height:40px}
.balance-adjust-form small{color:#EDE9FE!important;line-height:1.35}
@media(max-width:640px){.balance-adjust-form{padding:10px}.finance-core-card.real{overflow:visible}}


/* BL4CK Wealth v8.9.5 — refinamentos da página de cadastro */
.register-cycle-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 8px 0 12px;
}

.register-cycle-card {
    appearance: none;
    border: 1px solid #ded7ef;
    background: #ffffff;
    color: #171122;
    border-radius: 14px;
    padding: 12px 10px;
    text-align: left;
    cursor: pointer;
    min-width: 0;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.register-cycle-card:hover {
    transform: translateY(-1px);
    border-color: #a78bfa;
}

.register-cycle-card.active {
    background: linear-gradient(135deg, #171122 0%, #3b176d 55%, #6d28d9 100%);
    color: #ffffff;
    border-color: #6d28d9;
    box-shadow: 0 12px 24px rgba(109, 40, 217, .22);
}

.register-cycle-card span,
.register-cycle-card strong,
.register-cycle-card small,
.register-cycle-card em {
    display: block;
}

.register-cycle-card span {
    font-size: .78rem;
    font-weight: 800;
}

.register-cycle-card strong {
    margin-top: 5px;
    font-size: 1.05rem;
    line-height: 1.1;
}

.register-cycle-card small {
    margin-top: 2px;
    color: inherit;
    opacity: .72;
}

.register-cycle-card em {
    margin-top: 8px;
    font-size: .7rem;
    font-style: normal;
    font-weight: 800;
    color: #6d28d9;
}

.register-cycle-card.active em {
    color: #ede9fe;
}

.field-title {
    display: block;
    font-weight: 800;
    color: #171122;
    margin-bottom: 4px;
}

.password-field {
    display: flex;
    align-items: center;
    position: relative;
}

.password-field input {
    padding-right: 76px !important;
    width: 100%;
}

.password-field button {
    position: absolute;
    right: 8px;
    border: 0;
    background: transparent;
    color: #6d28d9;
    font-weight: 800;
    cursor: pointer;
    padding: 7px;
}

.password-hint {
    display: block;
    margin-top: -5px;
    color: #6b7280;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 680px) {
    .register-cycle-options {
        grid-template-columns: 1fr;
    }

    .register-cycle-card {
        display: grid;
        grid-template-columns: 1fr auto;
        align-items: center;
        column-gap: 10px;
    }

    .register-cycle-card small,
    .register-cycle-card em {
        grid-column: 1 / -1;
    }
}
