:root {
    --primary: #4f46e5;
    --primary-hover: #4338ca;
    --secondary: #64748b;
    --secondary-hover: #475569;
    --bg-color: #f1f5f9;
    --card-bg: #ffffff;
    --text-main: #0f172a;
    --text-muted: #64748b;
    --border-color: #e2e8f0;
    --surface-soft: #f8fafc;
    --input-bg: #ffffff;
    --button-secondary-hover: #e2e8f0;
    
    --success: #10b981;
    --danger: #ef4444;
    --warning: #f59e0b;
    --info: #3b82f6;
    
    --sidebar-w: 260px;
    --shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.05);
    --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
    --radius: 8px;
}

:root[data-theme="light-warm"] {
    --bg-color: #f5f1e8;
    --card-bg: #fffdf8;
    --text-main: #292524;
    --text-muted: #78716c;
    --border-color: #e7e0d3;
    --surface-soft: #faf7f0;
    --input-bg: #fffdf8;
    --button-secondary-hover: #eee7db;
}

:root[data-theme="dark-graphite"] {
    --primary: #8b7cf6;
    --primary-hover: #7667e8;
    --bg-color: #161719;
    --card-bg: #212326;
    --text-main: #f4f4f5;
    --text-muted: #a1a1aa;
    --border-color: #383b40;
    --surface-soft: #292b2f;
    --input-bg: #292b2f;
    --button-secondary-hover: #35383d;
    --shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.5);
    --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.5), 0 2px 4px -1px rgba(0,0,0,0.3);
}

:root[data-theme="dark-midnight"] {
    --primary: #7c6df2;
    --primary-hover: #6959e7;
    --bg-color: #0b1220;
    --card-bg: #172235;
    --text-main: #f1f5f9;
    --text-muted: #9aa9bd;
    --border-color: #2b3a50;
    --surface-soft: #1c2a40;
    --input-bg: #111c2e;
    --button-secondary-hover: #263750;
    --shadow-sm: 0 1px 2px rgba(0,0,0,.45);
    --shadow-md: 0 8px 22px rgba(0,0,0,.35);
}

:root[data-theme^="dark-"] .data-table tbody tr:hover {
    background: var(--surface-soft);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Inter', sans-serif;
}

body {
    background-color: var(--bg-color);
    color: var(--text-main);
}

input, select, textarea {
    background-color: var(--input-bg);
    color: var(--text-main);
    border-color: var(--border-color);
}
select option { background: var(--card-bg); color: var(--text-main); }

/* Screens */
.screen {
    display: none;
    min-height: 100vh;
}
.screen.active {
    display: flex;
}

/* Auth */
.auth-container {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary) 0%, #818cf8 100%);
}
.auth-box {
    background: var(--card-bg);
    padding: 2.5rem;
    border-radius: 12px;
    box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1);
    width: 100%;
    max-width: 400px;
    text-align: center;
}
.auth-box h2 {
    color: var(--primary);
    margin-bottom: 0.5rem;
    font-size: 2rem;
}
.auth-box p {
    color: var(--text-muted);
    margin-bottom: 2rem;
}
.form-group {
    margin-bottom: 1.25rem;
    text-align: left;
    display: flex;
    flex-direction: column;
}
.form-group label {
    font-weight: 500;
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
    color: var(--text-main);
}
.form-group input, .form-group select {
    padding: 0.75rem;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    outline: none;
    transition: border 0.2s;
    font-size: 1rem;
}
.form-group input:focus, .form-group select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
}
.password-field { position: relative; width: 100%; }
.password-field input { width: 100%; padding-right: 3rem; }
.password-toggle { position: absolute; top: 50%; right: .35rem; transform: translateY(-50%); width: 38px; height: 38px; border: 0; border-radius: 8px; background: transparent; color: var(--text-muted); cursor: pointer; }
.password-toggle:hover { color: var(--primary); background: rgba(79,70,229,.08); }
.password-help { color: var(--text-muted); font-size: .72rem; margin-top: .35rem; }
.auth-links { display: flex; justify-content: center; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; font-size: .78rem; }
.auth-links a, .access-back { color: var(--primary); text-decoration: none; font-weight: 600; }
.auth-links a:hover, .access-back:hover { text-decoration: underline; }

/* Acesso por convite */
.access-page { min-height: 100vh; background: radial-gradient(circle at top left, rgba(129,140,248,.7), transparent 35%), linear-gradient(135deg, #312e81, #4f46e5 55%, #7c3aed); }
.access-shell { min-height: 100vh; display: grid; place-items: center; padding: 1.25rem; }
.access-card { width: min(100%, 470px); padding: 2rem; border-radius: 18px; background: var(--card-bg); box-shadow: 0 24px 70px rgba(15,23,42,.3); }
.access-admin-shell { align-items: start; padding-top: clamp(1.25rem, 6vh, 4rem); }
.access-admin-card { width: min(100%, 900px); }
.access-brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--primary); font-weight: 800; text-decoration: none; }
.access-brand span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: var(--primary); }
.access-heading { margin: 1.5rem 0; }
.access-heading h1 { margin: .35rem 0; color: var(--text-main); font-size: clamp(1.5rem, 3vw, 2rem); }
.access-heading p { color: var(--text-muted); line-height: 1.55; }
.access-back { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.25rem; }
.access-message { display: none; margin: .75rem 0; padding: .75rem; border-radius: 8px; font-size: .82rem; }
.access-message.error, .access-message.success { display: block; }
.access-message.error { color: #b91c1c; background: #fee2e2; }
.access-message.success { color: #047857; background: #d1fae5; }
.access-admin-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.access-close { width: auto; white-space: nowrap; text-decoration: none; }
.access-generator-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; align-items: end; gap: 1rem; padding: 1.25rem; border-radius: 12px; background: var(--bg-color); }
.generator-submit { grid-column: 1 / -1; width: auto; justify-self: end; margin: 0; }
.generator-purpose-help { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: .55rem; color: var(--text-muted); font-size: .8rem; line-height: 1.45; }
.generator-purpose-help i { margin-top: .15rem; color: var(--primary); }
.generator-result { margin-top: 1.25rem; padding: 1.25rem; border: 1px solid #a7f3d0; border-radius: 12px; background: #ecfdf5; }
.generator-result-title { display: flex; align-items: center; gap: .75rem; color: #047857; margin-bottom: 1rem; }
.generator-result-title > i { font-size: 1.5rem; }
.generator-result-title div { display: flex; flex-direction: column; }
.generator-result-title small { margin-top: .2rem; }
.generator-result > label { display: block; color: var(--text-main); font-size: .75rem; font-weight: 700; margin-bottom: .35rem; }
.copy-field { display: flex; gap: .5rem; }
.copy-field input { min-width: 0; flex: 1; padding: .75rem; border: 1px solid var(--border-color); border-radius: 8px; }
.copy-field .btn { width: auto; margin: 0; white-space: nowrap; }
.security-note { margin-top: .8rem; color: #047857; font-size: .75rem; }
@media (max-width: 700px) { .access-card { padding: 1.25rem; }.access-admin-header { flex-direction: column; }.access-generator-grid { grid-template-columns: 1fr; }.generator-submit { grid-column: 1; width: 100%; }.copy-field { flex-direction: column; }.copy-field .btn { width: 100%; } }

.btn {
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: var(--radius);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 1rem;
    width: 100%;
    margin-bottom: 0.75rem;
}
.btn-primary { background: var(--primary); color: white; }
.btn-primary:hover { background: var(--primary-hover); }
.btn-secondary { background: var(--bg-color); color: var(--text-main); border: 1px solid var(--border-color); }
.btn-secondary:hover { background: var(--button-secondary-hover); color: var(--text-main); }
.w-full { width: 100%; }

/* Main App Layout */
.sidebar {
    width: var(--sidebar-w);
    background: var(--card-bg);
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    position: fixed;
    height: 100vh;
    z-index: 10;
}
.sidebar-header {
    padding: 2rem 1.5rem;
    border-bottom: 1px solid var(--border-color);
}
.sidebar-header h2 {
    color: var(--primary);
    font-weight: 700;
}
.sidebar-nav {
    flex: 1;
    padding: 1.5rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.nav-item {
    padding: 0.875rem 1rem;
    text-decoration: none;
    color: var(--text-muted);
    border-radius: var(--radius);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.2s;
}
.nav-item:hover, .nav-item.active {
    background: var(--primary);
    color: white;
}
.sidebar-footer {
    padding: 1rem;
    border-top: 1px solid var(--border-color);
}
.sidebar-workspace { margin-bottom: 1rem; padding: .75rem; border: 1px solid var(--border-color); background: linear-gradient(145deg, var(--card-bg), rgba(79,70,229,.045)); border-radius: 12px; }
.sidebar-workspace label { display: block; color: var(--text-muted); font-size: .68rem; font-weight: 700; margin-bottom: .4rem; text-transform: uppercase; letter-spacing: .04em; }
.sidebar-workspace .workspace-control { width: 100%; }
.sidebar-workspace .workspace-control select { flex: 1; min-width: 0; max-width: none; width: 100%; font-size: .78rem; font-weight: 700; color: var(--text-main); background: transparent; border: 0; padding: .45rem .2rem; cursor: pointer; }
.sidebar-workspace .workspace-control select:focus { outline: none; }
.workspace-context-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: linear-gradient(135deg, var(--primary), #7c3aed); box-shadow: 0 5px 12px rgba(79,70,229,.2); flex: 0 0 auto; }
.sidebar-workspace .workspace-manage-btn { min-width: 32px; width: 32px; height: 32px; border: 0; background: rgba(79,70,229,.09); }
.btn-logout {
    background: none;
    border: none;
    color: var(--text-muted);
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem;
    border-radius: var(--radius);
}
.btn-logout:hover {
    background: var(--bg-color);
    color: var(--danger);
}

.main-content {
    flex: 1;
    margin-left: var(--sidebar-w);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.top-header {
    background: var(--card-bg);
    padding: 1.5rem 2.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    position: sticky;
    top: 0;
    z-index: 5;
    min-height: 78px;
    box-sizing: border-box;
}
.header-left { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.mobile-menu-btn, .sidebar-overlay { display: none; }
.month-filter {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.dashboard-date-filter { display: none; align-items: flex-end; gap: .75rem; }
.dashboard-date-filter.active { display: flex; }
.launch-filter-mode-wrap, .month-filter-field { flex-direction: column; align-items: stretch; gap: .35rem; }
.launch-filter-mode-wrap select { min-width: 145px; height: 40px; padding: 0 2.25rem 0 .8rem; border: 1px solid var(--border-color); border-radius: 10px; color: var(--text-main); background: var(--card-bg); font-weight: 700; cursor: pointer; box-shadow: var(--shadow-sm); }
.month-filter input {
    height: 40px;
    padding: 0 .9rem;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    font-weight: 700;
    box-shadow: var(--shadow-sm);
}

.content-wrapper {
    padding: 2.5rem;
    flex: 1;
}

.tab-pane {
    display: none;
    animation: fadeIn 0.3s ease-in-out;
}
.tab-pane.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Cards */
.card {
    background: var(--card-bg);
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--border-color);
}

.header-right { display: flex; align-items: flex-end; gap: 1rem; }
.month-filter { display: flex; flex-direction: row; align-items: flex-end; gap: .75rem; }
.month-filter label { color: var(--text-muted); font-size: .72rem; line-height: 1; font-weight: 700; }
#rel-form-pagamentos select { width: 100%; }
.workspace-control { display: flex; align-items: center; gap: .4rem; }
.workspace-control select { min-width: 200px; max-width: 280px; }
.workspace-manage-btn, .modal-close-btn {
    border: 1px solid var(--border-color); background: var(--card-bg); color: var(--primary);
    border-radius: 8px; cursor: pointer; height: 40px; min-width: 40px; font-size: 1rem;
}
.workspace-modal-card { width: calc(100% - 2rem); max-width: 720px; max-height: 90vh; overflow-y: auto; }
.workspace-modal-header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.workspace-modal-header h3 { color: var(--text-main); font-size: 1.25rem; }
.workspace-modal-header p, .workspace-section p { color: var(--text-muted); font-size: .85rem; margin-top: .35rem; }
.modal-close-btn { border: 0; font-size: 1.7rem; line-height: 1; }
.workspace-section { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border-color); }
.workspace-section h4 { color: var(--text-main); margin-bottom: .75rem; }
.workspace-inline-form { display: flex; gap: .65rem; align-items: center; }
.workspace-inline-form input { flex: 1; }
.workspace-inline-form .btn { width: auto; margin: 0; white-space: nowrap; }
.workspace-invite-form select { min-width: 160px; }
.workspace-members-list { margin-top: 1rem; display: grid; gap: .6rem; }
.workspace-member { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 1rem; background: var(--bg-color); border-radius: 9px; }
.workspace-member strong { color: var(--text-main); display: block; }
.workspace-member small { color: var(--text-muted); }
.workspace-member-meta { display: flex; align-items: center; gap: .6rem; }
.workspace-role-badge { padding: .3rem .55rem; border-radius: 999px; color: var(--primary); background: rgba(79,70,229,.1); font-size: .72rem; font-weight: 700; }
.workspace-remove { border: 0; background: transparent; color: var(--danger); cursor: pointer; padding: .4rem; }
.workspace-admin-actions { display: flex; gap: .65rem; margin: 1rem 0; }
.workspace-admin-actions .btn { width: auto; margin: 0; }
.workspace-delete-btn { background: rgba(239,68,68,.08); border: 1px solid rgba(239,68,68,.25); color: var(--danger); }
.workspace-delete-btn:hover { background: var(--danger); color: #fff; }

/* Configurações compactas */
.settings-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem; }
.settings-subtabs { display: flex; gap: .45rem; margin-bottom: 1.25rem; padding: .35rem; width: fit-content; border: 1px solid var(--border-color); border-radius: 12px; background: var(--surface-soft); }
.settings-subtabs button { display: flex; align-items: center; gap: .45rem; padding: .65rem .85rem; border: 0; border-radius: 9px; color: var(--text-muted); background: transparent; cursor: pointer; font-weight: 700; }
.settings-subtabs button.active { color: #fff; background: var(--primary); }
.category-heading-actions { display: flex; align-items: center; gap: .65rem; }
.category-heading-actions .btn { width: auto; margin: 0; padding: .55rem .85rem; font-size: .78rem; }
.profile-settings-fields { display: grid; grid-template-columns: minmax(200px,1fr) minmax(160px,.7fr) auto; gap: .5rem; }
.profile-settings-fields input, .profile-settings-fields select { min-width: 0; }
.settings-section-heading h3 { color: var(--text-main); font-size: 1.2rem; margin: .15rem 0 .25rem; }
.settings-section-heading p { color: var(--text-muted); font-size: .84rem; }
.settings-eyebrow { color: var(--primary); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.settings-count { padding: .4rem .65rem; border-radius: 999px; background: var(--bg-color); color: var(--text-muted); font-size: .75rem; font-weight: 700; white-space: nowrap; }
.category-groups { display: grid; gap: 1.4rem; }
.category-group-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: .7rem; color: var(--text-main); font-size: .85rem; font-weight: 800; }
.category-group-title span { display: flex; align-items: center; gap: .45rem; }
.category-group-title small { display: grid; place-items: center; min-width: 24px; height: 24px; padding: 0 .4rem; background: var(--bg-color); border-radius: 999px; color: var(--text-muted); }
.category-group-entrada .category-group-title i { color: var(--success); }
.category-group-saida .category-group-title i { color: var(--danger); }
.category-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .65rem; }
.category-card { position: relative; display: flex; align-items: center; gap: .75rem; min-width: 0; padding: .8rem; border: 1px solid var(--border-color); border-radius: 10px; background: var(--card-bg); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; overflow: hidden; }
.category-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--category-color); }
.category-card:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); border-color: color-mix(in srgb, var(--category-color) 40%, var(--border-color)); }
.category-color { width: 32px; height: 32px; border-radius: 10px; flex: 0 0 auto; background: var(--category-color); box-shadow: inset 0 0 0 5px rgba(255,255,255,.2); }
.category-card-content { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.category-card-content strong { color: var(--text-main); font-size: .85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.category-card-content small { color: var(--text-muted); font-size: .68rem; margin-top: .15rem; }
.category-card-actions, .payment-method-actions { display: flex; align-items: center; opacity: .55; transition: opacity .18s ease; }
.category-card:hover .category-card-actions, .payment-method-card:hover .payment-method-actions { opacity: 1; }
.category-card-actions .action-btn, .payment-method-actions .action-btn { width: 28px; height: 28px; font-size: .72rem; }
.payment-method-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .75rem; }
.payment-method-card { display: flex; align-items: center; gap: .8rem; min-width: 0; padding: 1rem; border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg); transition: transform .18s ease, box-shadow .18s ease; }
.payment-method-card:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.payment-method-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; color: #0f766e; background: rgba(20,184,166,.11); }
.payment-method-credit .payment-method-icon { color: var(--primary); background: rgba(79,70,229,.11); }
.payment-method-content { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.payment-method-content strong { color: var(--text-main); font-size: .88rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.payment-method-content span { color: var(--text-muted); font-size: .7rem; margin-top: .15rem; }
.payment-method-content small { color: var(--text-muted); opacity: .8; font-size: .64rem; margin-top: .25rem; }
.settings-empty { grid-column: 1 / -1; display: grid; place-items: center; gap: .5rem; padding: 2rem; border: 1px dashed var(--border-color); border-radius: 12px; color: var(--text-muted); }
.settings-empty i { color: var(--primary); font-size: 1.3rem; }
.setup-footer-btn { margin-bottom: .35rem; color: var(--primary); background: color-mix(in srgb, var(--primary) 8%, transparent); }

.form-help { display: block; margin-top: .35rem; color: var(--text-muted); font-size: .72rem; line-height: 1.35; }
.budget-category-row { background: color-mix(in srgb, var(--primary) 6%, var(--card-bg)); }
.budget-category-row td { border-top: 1px solid color-mix(in srgb, var(--primary) 28%, var(--border-color)); padding-top: .9rem; padding-bottom: .9rem; }
.budget-category-row td:first-child { display: flex; align-items: center; gap: .55rem; }
.budget-category-row small { color: var(--text-muted); font-size: .65rem; font-weight: 500; }
.budget-subgroup-row td:first-child { padding-left: 2rem; }
.budget-tree-branch { color: var(--primary); font-weight: 800; margin-right: .55rem; }
.budget-identification { color: var(--text-muted); font-size: .72rem; font-weight: 650; }
.debt-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.debt-summary-card { display: grid; gap: .4rem; padding: 1rem 1.1rem; border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg); box-shadow: var(--shadow-sm); }
.debt-summary-card span { color: var(--text-muted); font-size: .72rem; font-weight: 700; }
.debt-summary-card span i { margin-right: .35rem; color: var(--primary); }
.debt-summary-card strong { color: var(--text-main); font-size: 1.18rem; }
.debt-summary-card small { color: var(--text-muted); font-size: .65rem; }
.debt-summary-card.danger strong { color: var(--danger); }
.debt-summary-card.success strong { color: var(--success); }
.cards-page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.4rem; }
.cards-page-header h2 { color:var(--text-main); font-size:1.5rem; margin-bottom:.25rem; }
.cards-page-header p { color:var(--text-muted); font-size:.88rem; }
.cards-page-header .btn { width:auto; margin:0; }
.credit-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin-bottom:1.15rem; }
.credit-summary-grid article { display:grid; gap:.35rem; padding:1rem; border:1px solid var(--border-color); border-radius:12px; background:var(--card-bg); }
.credit-summary-grid span { color:var(--text-muted); font-size:.68rem; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.credit-summary-grid strong { color:var(--text-main); font-size:1.15rem; }
.credit-cards-list { display:grid; gap:1rem; }
.credit-card-panel { overflow:hidden; border:1px solid var(--border-color); border-radius:14px; background:var(--card-bg); box-shadow:var(--shadow-sm); }
.credit-card-main { display:grid; grid-template-columns:minmax(190px,1.1fr) minmax(270px,1.6fr) auto; gap:1.25rem; align-items:center; padding:1.2rem; }
.credit-card-identity { display:flex; align-items:center; gap:.8rem; min-width:0; }
.credit-card-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:12px; color:#fff; background:linear-gradient(145deg,var(--primary),color-mix(in srgb,var(--primary) 60%,#111827)); }
.credit-card-identity span,.credit-card-cycle small { display:block; color:var(--text-muted); font-size:.68rem; }
.credit-card-identity strong { display:block; overflow:hidden; color:var(--text-main); font-size:1rem; text-overflow:ellipsis; white-space:nowrap; }
.credit-card-cycle { display:grid; gap:.45rem; }
.credit-card-cycle-header { display:flex; justify-content:space-between; gap:1rem; color:var(--text-main); font-size:.75rem; }
.credit-limit-bar { height:8px; overflow:hidden; border-radius:999px; background:var(--surface-soft); }
.credit-limit-bar i { display:block; height:100%; border-radius:inherit; background:var(--primary); }
.credit-card-values { display:flex; gap:1rem; flex-wrap:wrap; }
.credit-card-values div { display:grid; gap:.12rem; }
.credit-card-values span { color:var(--text-muted); font-size:.62rem; text-transform:uppercase; }
.credit-card-values strong { color:var(--text-main); font-size:.85rem; }
.credit-card-actions { display:flex; justify-content:flex-end; gap:.45rem; flex-wrap:wrap; }
.credit-card-actions .btn { width:auto; margin:0; padding:.55rem .75rem; font-size:.75rem; }
.invoice-status { display:inline-flex; align-items:center; width:max-content; padding:.2rem .5rem; border-radius:999px; font-size:.62rem; font-weight:800; }
.invoice-open { color:#0369a1; background:rgba(14,165,233,.14); }.invoice-closed { color:#b45309; background:rgba(245,158,11,.14); }.invoice-paid { color:#047857; background:rgba(16,185,129,.14); }
.invoice-purchases { border-top:1px solid var(--border-color); padding:0 1.2rem 1.1rem; }
.invoice-purchases summary { cursor:pointer; padding:.85rem 0; color:var(--primary); font-size:.75rem; font-weight:750; }
.invoice-purchase-list { display:grid; gap:.4rem; }
.invoice-purchase-row { display:grid; grid-template-columns:90px minmax(160px,1fr) minmax(120px,.6fr) 110px; gap:.75rem; align-items:center; padding:.6rem .7rem; border-radius:8px; background:var(--surface-soft); color:var(--text-main); font-size:.72rem; }
.invoice-purchase-row span:last-child { text-align:right; font-weight:750; }
.card-form-modal { width:min(620px,calc(100% - 1rem)); }
.modal-overlay { position:fixed; inset:0; z-index:150; align-items:center; justify-content:center; padding:1rem; background:rgba(0,0,0,.62); }
.modal-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.modal-heading h3 { color:var(--text-main); font-size:1.2rem; margin-top:.2rem; }
.invoice-payment-form { display:grid; gap:.65rem; text-align:left; }
.invoice-payment-form p { margin:0 0 .35rem; text-align:center; }
.invoice-payment-form label { color:var(--text-main); font-size:.78rem; font-weight:700; }
.invoice-payment-form .swal2-select,.invoice-payment-form .swal2-input { width:100%; margin:0; box-sizing:border-box; }
@media(max-width:1000px){.credit-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.credit-card-main{grid-template-columns:1fr 1fr}.credit-card-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:650px){.cards-page-header{align-items:stretch;flex-direction:column}.credit-summary-grid{grid-template-columns:1fr 1fr}.credit-card-main{grid-template-columns:1fr}.credit-card-actions{grid-column:auto}.invoice-purchase-row{grid-template-columns:80px 1fr 90px}.invoice-purchase-row span:nth-child(3){display:none}}
@media(max-width:900px){.debt-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.debt-summary-grid{grid-template-columns:1fr}}

.preset-linked-form { display: grid; grid-template-columns: minmax(170px,.8fr) minmax(220px,1.5fr) auto auto; gap: .65rem; align-items: center; }
.preset-linked-form select, .preset-linked-form input { min-width: 0; height: 44px; padding: 0 .75rem; border: 1px solid var(--border-color); border-radius: 9px; }
.preset-linked-form .btn { width: auto; height: 44px; margin: 0; padding: 0 1rem; }
.linked-preset-list { margin-top: 1rem; max-height: 390px; overflow-y: auto; align-content: flex-start; padding: .25rem .35rem .25rem 0; scrollbar-width: thin; }
.preset-category-group { flex: 0 0 100%; min-width: 0; padding: .75rem; border: 1px solid var(--border-color); border-radius: 12px; background: color-mix(in srgb, var(--primary) 3%, var(--card-bg)); }
.preset-category-group + .preset-category-group { margin-top: .35rem; }
.preset-category-group > header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .65rem; padding-bottom: .55rem; border-bottom: 1px solid var(--border-color); }
.preset-category-group > header span { color: var(--primary); font-size: .7rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.preset-category-group > header small { min-width: 22px; padding: .16rem .42rem; border-radius: 999px; color: var(--text-muted); background: var(--surface-soft); font-size: .62rem; font-weight: 800; text-align: center; }
.preset-category-items { display: flex; flex-wrap: wrap; gap: .5rem; }
.person-quick-form { display:grid; grid-template-columns:minmax(240px,520px) auto; gap:.65rem; align-items:end; }
.person-quick-form .form-group { margin:0; min-width:0; }
.person-quick-form input,.person-quick-form select { height:42px; min-width:0; }
.person-form-actions { display:flex; gap:.45rem; }
.person-form-actions .btn { width:auto; height:42px; margin:0; padding:0 .8rem; }
.person-template-help { margin:.8rem 0 0; }
.person-list-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-top:1rem; }
.person-search { position:relative; width:min(100%,420px); }
.person-search i { position:absolute; left:.8rem; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:.75rem; pointer-events:none; }
.person-search input { width:100%; height:38px; padding:.55rem .75rem .55rem 2.25rem; border:1px solid var(--border-color); border-radius:9px; background:var(--surface-soft); color:var(--text-main); }
.person-counter { flex:none; padding:.35rem .6rem; border-radius:999px; background:var(--surface-soft); color:var(--text-muted); font-size:.68rem; font-weight:800; }
.person-card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.45rem; margin-top:.65rem; max-height:280px; overflow-y:auto; padding-right:.25rem; scrollbar-gutter:stable; }
.person-card-grid > .settings-empty { grid-column:1 / -1; }
.person-card { display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:.5rem; align-items:center; min-height:52px; padding:.5rem .6rem; border:1px solid var(--border-color); border-radius:9px; background:var(--surface-soft); }
.person-card-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:8px; color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,transparent); font-size:.72rem; }
.person-card-info { min-width:0; display:grid; gap:.14rem; }
.person-card-info strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-main); font-size:.82rem; }
.person-card-info span,.person-card-info small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-muted); font-size:.59rem; }
.person-card-actions { display:flex; gap:.25rem; }
@media(max-width:1400px){.person-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.person-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.person-quick-form{grid-template-columns:1fr}.person-form-actions{grid-column:auto}.person-list-toolbar{align-items:stretch;flex-direction:column}.person-search{width:100%}.person-card-grid{grid-template-columns:1fr;max-height:320px}}
.person-directory .settings-section-heading code { padding:.12rem .3rem; border-radius:5px; color:var(--primary); background:color-mix(in srgb,var(--primary) 10%,transparent); font-family:inherit; font-weight:800; }
.person-directory .settings-section-heading .btn { width:auto; margin:0; white-space:nowrap; }
.person-editor-panel { margin:.25rem 0 1rem; padding:1rem; border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border-color)); border-radius:12px; background:color-mix(in srgb,var(--primary) 5%,var(--surface-soft)); }
.person-editor-panel[hidden] { display:none; }
.person-directory-controls { display:flex; align-items:center; gap:.55rem; }
.person-directory-controls select { height:38px; padding:0 .7rem; border:1px solid var(--border-color); border-radius:9px; color:var(--text-main); background:var(--surface-soft); font-size:.68rem; font-weight:700; }
.person-directory-controls select[hidden] { display:none; }
.person-show-all { width:auto!important; height:38px; margin:0!important; padding:0 .75rem!important; font-size:.68rem!important; white-space:nowrap; }
.person-table-heading { display:grid; grid-template-columns:minmax(0,1fr) 150px 82px; gap:1rem; padding:.55rem .75rem; margin-top:.65rem; border-bottom:1px solid var(--border-color); color:var(--text-muted); font-size:.58rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.person-directory-list { display:block; max-height:none; overflow:visible; padding:0; margin:0; }
.person-directory-list[hidden],.person-table-heading[hidden] { display:none; }
.person-directory-list .person-card { display:grid; grid-template-columns:minmax(0,1fr) 150px 82px; gap:1rem; min-height:56px; padding:.55rem .75rem; border:0; border-bottom:1px solid var(--border-color); border-radius:0; background:transparent; box-shadow:none; }
.person-directory-list .person-card:hover { background:color-mix(in srgb,var(--primary) 5%,transparent); }
.person-directory-list .person-card-main { display:flex; align-items:center; gap:.65rem; min-width:0; }
.person-directory-list .person-card-icon { flex:none; width:34px; height:34px; border-radius:10px; color:var(--person-color,var(--primary)); background:color-mix(in srgb,var(--person-color,var(--primary)) 14%,transparent); font-size:.67rem; font-weight:900; }
.person-directory-list .person-card-info span { font-size:.59rem; }
.person-directory-list .person-usage { color:var(--text-muted); font-size:.62rem; font-weight:700; }
.person-directory-list .person-card-actions { justify-content:flex-end; }
.person-pagination { display:flex; align-items:center; justify-content:center; gap:.7rem; margin-top:.8rem; }
.person-pagination[hidden] { display:none; }
.person-pagination button { display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--border-color); border-radius:8px; color:var(--text-main); background:var(--surface-soft); cursor:pointer; }
.person-pagination button:disabled { opacity:.35; cursor:not-allowed; }
.person-pagination span { min-width:100px; text-align:center; color:var(--text-muted); font-size:.65rem; font-weight:800; }
.launch-description-cell .launch-person-name { display:flex; align-items:center; gap:.28rem; color:var(--primary); }
.launch-description-cell .launch-person-name i { font-size:.68rem; opacity:.85; }
@media(max-width:700px){.person-table-heading{display:none}.person-directory-list .person-card{grid-template-columns:minmax(0,1fr) auto}.person-directory-list .person-usage{display:none}.person-directory-controls{align-items:stretch;flex-direction:column}.person-directory-controls select{width:100%}.person-directory .settings-section-heading{align-items:flex-start}.person-directory .settings-section-heading .btn{width:100%}}
.preset-settings-section { align-self: start; }
.setup-modal { position: fixed; inset: 0; z-index: 140; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,.65); }
.setup-card { width: 100%; max-width: none; max-height: none; overflow: visible; box-shadow: none; }
.setup-card form { margin-top: 1rem; display: grid; gap: 1rem; }
.setup-section { padding: 1rem; border: 1px solid var(--border-color); border-radius: 12px; background: var(--surface-soft); }
.setup-section > label, .setup-section-title label { display: block; color: var(--text-main); font-size: .78rem; font-weight: 800; margin-bottom: .65rem; }
.setup-section input, .setup-section select { width: 100%; min-height: 42px; padding: .65rem .75rem; border: 1px solid var(--border-color); border-radius: 9px; }
.setup-two-columns, .setup-model-options { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.setup-model-options > label { cursor: pointer; }.setup-model-options input { position: absolute; opacity: 0; pointer-events: none; }
.setup-model-options span { display: grid; grid-template-columns: 34px 1fr; padding: .85rem; border: 1px solid var(--border-color); border-radius: 10px; background: var(--card-bg); }
.setup-model-options i { grid-row: 1/3; display: grid; place-items: center; color: var(--primary); }.setup-model-options small { color: var(--text-muted); }
.setup-model-options input:checked + span { border-color: var(--primary); box-shadow: 0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent); }.setup-model-options input:disabled + span { opacity: .5; cursor: not-allowed; }
.setup-section-title { display: flex; justify-content: space-between; align-items: center; }.setup-section-title button { border: 0; background: transparent; color: var(--primary); cursor: pointer; font-weight: 700; }
.setup-category-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; max-height: 250px; overflow-y: auto; }
.setup-category-option { display: flex; gap: .55rem; align-items: center; padding: .65rem; border: 1px solid var(--border-color); border-radius: 9px; background: var(--card-bg); cursor: pointer; }
.setup-category-option input { width: 17px; min-height: 17px; accent-color: var(--primary); }.setup-category-option span { display: flex; flex-direction: column; min-width: 0; }.setup-category-option b { color: var(--text-main); font-size: .72rem; }.setup-category-option small { color: var(--text-muted); font-size: .62rem; }.setup-category-option.disabled { opacity: .55; cursor: not-allowed; }
.setup-payment-list { display: flex; flex-wrap: wrap; gap: .55rem; }.setup-payment-list label { display: flex; align-items: center; gap: .35rem; padding: .5rem .7rem; border: 1px solid var(--border-color); border-radius: 999px; background: var(--card-bg); color: var(--text-main); font-size: .72rem; }.setup-payment-list input { width: 15px; min-height: 15px; }
.setup-bank-grid { display: grid; grid-template-columns: 1.3fr 1fr .8fr .7fr; gap: .6rem; }
@media(max-width:760px){.setup-category-list{grid-template-columns:1fr 1fr}.setup-bank-grid,.setup-two-columns{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.setup-category-list,.setup-bank-grid,.setup-two-columns,.setup-model-options{grid-template-columns:1fr}}
@media(max-width:650px){.settings-subtabs{width:100%;flex-direction:column}.profile-settings-fields{grid-template-columns:1fr}.category-heading-actions{align-items:flex-end;flex-direction:column}}
.linked-preset-chip span { display: flex; flex-direction: column; min-width: 0; }
.linked-preset-chip span small { color: var(--primary); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .15rem; }
.theme-settings-panel { margin-top: 1rem; display: grid; gap: 1rem; padding: 1rem; background: var(--surface-soft); border: 1px solid var(--border-color); border-radius: 12px; }
.theme-option-grid { display: grid; grid-template-columns: repeat(4, minmax(130px,1fr)); gap: .65rem; }
.theme-option { position: relative; display: grid; grid-template-columns: 30px 1fr; grid-template-rows: auto auto; column-gap: .6rem; text-align: left; align-items: center; padding: .75rem; border: 1px solid var(--border-color); border-radius: 10px; color: var(--text-main); background: var(--card-bg); cursor: pointer; }
.theme-option:hover, .theme-option.active { border-color: var(--primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 20%, transparent); }
.theme-option.active::after { content: '✓'; position: absolute; right: .55rem; top: .45rem; color: var(--primary); font-weight: 900; }
.theme-option strong { font-size: .78rem; }
.theme-option small { grid-column: 2; color: var(--text-muted); font-size: .65rem; }
.theme-swatch { grid-row: 1 / 3; width: 30px; height: 30px; border-radius: 9px; border: 1px solid rgba(127,127,127,.25); }
.theme-swatch-light { background: linear-gradient(135deg,#fff 50%,#e2e8f0 50%); }
.theme-swatch-warm { background: linear-gradient(135deg,#fffdf8 50%,#e7e0d3 50%); }
.theme-swatch-graphite { background: linear-gradient(135deg,#212326 50%,#8b7cf6 50%); }
.theme-swatch-midnight { background: linear-gradient(135deg,#172235 50%,#7c6df2 50%); }

@media (max-width: 900px) {
    .preset-linked-form { grid-template-columns: 1fr 1fr; }
    .theme-option-grid { grid-template-columns: repeat(2, minmax(130px,1fr)); }
}
@media (max-width: 560px) {
    .preset-linked-form, .theme-option-grid { grid-template-columns: 1fr; }
}

/* Contas bancárias e extrato */
.bank-account-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: .75rem; }
.bank-account-card { position: relative; display: flex; align-items: center; gap: .8rem; min-width: 0; padding: 1rem; border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg); overflow: hidden; }
.bank-account-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--bank-color); }
.bank-account-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; background: color-mix(in srgb, var(--bank-color) 13%, transparent); color: var(--bank-color); }
.bank-account-info { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.bank-account-info span { color: var(--text-muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.bank-account-info strong { color: var(--text-main); font-size: .9rem; margin: .12rem 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bank-account-info small { color: var(--text-muted); font-size: .65rem; }
.bank-account-actions { display: flex; opacity: .55; }
.bank-account-card:hover .bank-account-actions { opacity: 1; }
.bank-balance-help { padding: .8rem; margin-top: .5rem; border-radius: 9px; background: rgba(59,130,246,.08); color: var(--text-muted); font-size: .78rem; }
.bank-balance-help i { color: #3b82f6; margin-right: .35rem; }
.bank-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.bank-page-header h2 { color: var(--text-main); font-size: 1.5rem; margin: .15rem 0 .25rem; }
.bank-page-header p { color: var(--text-muted); font-size: .88rem; }
.bank-page-header select { min-width: 270px; }
.bank-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.bank-summary-card { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.25rem; }
.bank-summary-card span { color: var(--text-muted); font-size: .75rem; }
.bank-summary-card strong { color: var(--text-main); font-size: 1.25rem; }
.bank-income { border-bottom: 3px solid var(--success); }
.bank-expense { border-bottom: 3px solid var(--danger); }
.bank-current { border-bottom: 3px solid var(--primary); background: linear-gradient(135deg, var(--card-bg), rgba(79,70,229,.07)); }
.bank-statement-card { margin-top: 1rem; }
.statement-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 1rem; }
.statement-heading h3 { color: var(--text-main); }
.statement-heading p { color: var(--text-muted); font-size: .78rem; margin-top: .2rem; }
.statement-filter { display: flex; flex-direction: column; gap: .3rem; }
.statement-filter label { color: var(--text-muted); font-size: .7rem; font-weight: 700; }
.statement-table td { white-space: nowrap; }
.statement-day-balance td { padding-top: .55rem; padding-bottom: .55rem; border-top: 1px dashed color-mix(in srgb,var(--primary) 35%,var(--border-color)); border-bottom: 2px solid color-mix(in srgb,var(--primary) 20%,var(--border-color)); background: color-mix(in srgb,var(--primary) 7%,var(--card-bg)); }
.statement-day-balance td:first-child { text-align: right; color: var(--text-muted); font-size: .72rem; font-weight: 700; }
.statement-day-balance td:first-child span { display: inline-flex; align-items: center; gap: .4rem; }
.statement-day-balance td:last-child { color: var(--primary); font-size: .88rem; }
.list-filters { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.list-filters select { min-height: 34px; padding: .35rem .55rem; border: 1px solid var(--border-color); border-radius: 8px; color: var(--text-main); background: var(--input-bg); font-size: .72rem; font-weight: 650; }
.account-table-label { display: inline-flex; align-items: center; gap: .55rem; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .92rem; color: var(--text-main); }
.account-table-label::before { content: ''; width: 12px; height: 12px; flex: 0 0 12px; border-radius: 50%; background: var(--account-color); }
.text-muted { color: var(--text-muted); }
.launch-table { min-width: 1280px; table-layout: fixed; }
.launch-table th, .launch-table td { vertical-align: middle; }
.launch-table th:nth-child(1) { width: 9%; }
.launch-table th:nth-child(2) { width: 11%; }
.launch-table th:nth-child(3) { width: 18%; }
.launch-table th:nth-child(4) { width: 20%; }
.launch-table th:nth-child(5) { width: 9%; }
.launch-table th:nth-child(6) { width: 7%; }
.launch-table th:nth-child(7) { width: 9%; }
.launch-table th:nth-child(8) { width: 7%; }
.launch-table th:nth-child(9) { width: 10%; }
.launch-table tbody td { font-size: .95rem; }
.launch-table .badge { font-size: .8rem; padding: .26rem .7rem; }
.launch-competence, .launch-date, .launch-value-column { white-space: nowrap; font-variant-numeric: tabular-nums; }
.launch-description-column, .launch-account-column { min-width: 0; }
.launch-category-column, .launch-type-column, .launch-status-column, .launch-actions-column { white-space: nowrap; }
.launch-category-column { font-weight: 600; }
.launch-table th:nth-child(4), .launch-table td:nth-child(4) { padding-left: .55rem; }
.category-table-label { display: flex; align-items: center; gap: .55rem; min-width: 0; max-width: 100%; overflow: hidden; }
.category-table-label > span:last-child { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.launch-category-column .cat-color-dot { width: 12px; height: 12px; flex: 0 0 12px; margin-right: 0; }
.launch-type-column, .launch-status-column, .launch-actions-column { text-align: center !important; }
.launch-value-column { text-align: right !important; font-weight: 700; }
.launch-description-cell { position: relative; min-width: 0; display: flex; flex-direction: column; gap: .18rem; padding-right: 2.6rem; }
.launch-description-cell strong, .launch-description-cell small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.launch-description-cell strong { color: var(--text-main); font-size: .95rem; }
.launch-description-cell small { color: var(--text-muted); font-size: .76rem; line-height: 1.35; }
.launch-table tfoot td { white-space: nowrap; }
.launch-totals-cell { padding: 0 !important; background: rgba(79,70,229,.055); }
.launch-totals-bar { min-height: 58px; display: flex; align-items: center; justify-content: flex-end; gap: 1.75rem; padding: .7rem 1rem; }
.launch-totals-bar > strong { color: var(--primary); font-size: .82rem; margin-right: .25rem; }
.launch-total-item { display: grid; gap: .12rem; min-width: 112px; text-align: right; }
.launch-total-item span { color: var(--text-muted); font-size: .63rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.launch-total-item b { font-size: .9rem; font-variant-numeric: tabular-nums; }
.launch-total-balance { padding-left: 1.25rem; border-left: 1px solid var(--border-color); }
.launch-page-actions { display: flex; align-items: center; justify-content: flex-end; gap: .7rem; flex-wrap: wrap; }
.receipt-import-button { position: relative; display: inline-flex; align-items: center; gap: .5rem; }
.receipt-count { min-width: 21px; height: 21px; display: inline-grid; place-items: center; padding: 0 .35rem; border-radius: 999px; color: #fff; background: var(--danger); font-size: .68rem; font-weight: 800; }
.receipt-modal { position: fixed; inset: 0; z-index: 110; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,.55); }
.receipt-modal-card { width: min(100%, 860px); max-height: 88vh; overflow-y: auto; padding: 1.5rem; }
.receipt-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border-color); }
.receipt-modal-header h3 { margin: .25rem 0; color: var(--text-main); font-size: 1.3rem; }
.receipt-modal-header p { color: var(--text-muted); font-size: .82rem; }
.receipt-import-list { display: grid; gap: .7rem; margin-top: 1rem; }
.receipt-import-card { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: .85rem; border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg); }
.receipt-file-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 11px; color: var(--primary); background: rgba(79,70,229,.09); font-size: 1.2rem; }
.receipt-import-info { min-width: 0; display: flex; flex-direction: column; gap: .18rem; }
.receipt-import-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-main); font-size: .88rem; }
.receipt-import-info span { color: var(--text-muted); font-size: .67rem; }
.receipt-import-info p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-muted); font-size: .74rem; }
.receipt-import-actions { display: flex; align-items: center; gap: .35rem; }
.receipt-import-actions .btn { width: auto; margin: 0; padding: .6rem .8rem; font-size: .78rem; white-space: nowrap; }
.receipt-import-actions .delete-receipt { color: var(--danger); }
.receipt-import-actions .delete-receipt:hover { border-color: color-mix(in srgb,var(--danger) 45%,var(--border-color)); background:color-mix(in srgb,var(--danger) 10%,transparent); }
.imported-receipt-banner { align-items: center; grid-template-columns: 34px minmax(0,1fr) auto; gap: .7rem; margin-bottom: .9rem; padding: .7rem .8rem; border: 1px solid rgba(16,185,129,.3); border-radius: 10px; color: #047857; background: rgba(16,185,129,.08); }
.imported-receipt-banner:not([hidden]) { display: grid; }
.imported-receipt-banner > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #047857; background: rgba(16,185,129,.12); }
.imported-receipt-banner div { min-width: 0; display: flex; flex-direction: column; }
.imported-receipt-banner strong { font-size: .78rem; }.imported-receipt-banner small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-muted); font-size: .67rem; }
.imported-receipt-banner button { width: 30px; height: 30px; border: 0; border-radius: 8px; color: var(--text-muted); background: transparent; cursor: pointer; }
.installment-pill { position: absolute; right: 0; top: 0; padding: .2rem .4rem; border-radius: 999px; color: var(--primary); background: rgba(79,70,229,.1); font-size: .65rem; font-weight: 800; }
.action-btn.timeline:hover { color: var(--primary); }
.timeline-modal-card { width: calc(100% - 2rem); max-width: 700px; max-height: 90vh; overflow-y: auto; }
.timeline-modal-card h3 { color: var(--text-main); margin-top: .15rem; }
.timeline-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin: 1.25rem 0; }
.timeline-summary > div { display: flex; flex-direction: column; gap: .25rem; padding: .8rem; border-radius: 10px; background: var(--bg-color); }
.timeline-summary span { color: var(--text-muted); font-size: .67rem; }
.timeline-summary strong { color: var(--text-main); font-size: .82rem; }
.timeline-list { position: relative; display: grid; gap: 0; padding-left: .25rem; }
.timeline-item { position: relative; display: grid; grid-template-columns: 34px 1fr; gap: .8rem; padding-bottom: 1rem; }
.timeline-item:not(:last-child)::before { content: ''; position: absolute; left: 16px; top: 32px; bottom: 0; width: 2px; background: var(--border-color); }
.timeline-marker { position: relative; z-index: 1; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #f59e0b; background: #fffbeb; border: 2px solid #fde68a; font-size: .72rem; }
.timeline-complete .timeline-marker { color: var(--success); background: #ecfdf5; border-color: #a7f3d0; }
.timeline-content { min-width: 0; padding: .75rem; border: 1px solid var(--border-color); border-radius: 10px; background: var(--card-bg); }
.timeline-item-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.timeline-item-header strong { color: var(--text-main); }
.timeline-item-header span { color: var(--text-main); font-weight: 800; }
.timeline-content p { color: var(--text-muted); font-size: .75rem; margin: .25rem 0; }
.timeline-content small { color: var(--text-muted); font-size: .68rem; }
.timeline-content em { display: block; color: var(--text-muted); font-size: .7rem; margin-top: .45rem; padding-top: .45rem; border-top: 1px dashed var(--border-color); font-style: normal; }

/* Formulário de lançamento */
.launch-modal-card { width: calc(100% - 2rem); max-width: 980px; max-height: 98vh; overflow-y: auto; padding: 0; border-radius: 18px; scrollbar-width: none; }
.launch-modal-card::-webkit-scrollbar { display: none; width: 0; height: 0; }
.launch-modal-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.35rem .85rem; border-bottom: 1px solid var(--border-color); background: linear-gradient(135deg,color-mix(in srgb,var(--primary) 8%,var(--card-bg)),var(--card-bg)); }
.launch-modal-heading h3 { margin: .18rem 0 .2rem; color: var(--text-main); font-size: 1.35rem; }
.launch-modal-heading p { margin: 0; color: var(--text-muted); font-size: .78rem; }
.launch-required-note { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .65rem; border-radius: 999px; color: var(--success); background: color-mix(in srgb,var(--success) 10%,transparent); font-size: .68rem; font-weight: 700; white-space: nowrap; }
.launch-modal-card form { padding: .75rem 1.35rem 0; }
.launch-section { margin-bottom: .6rem; padding: .7rem .85rem .8rem; border: 1px solid color-mix(in srgb,var(--border-color) 85%,transparent); border-radius: 12px; background: color-mix(in srgb,var(--bg-color) 32%,var(--card-bg)); }
.launch-section-title { display: flex; align-items: center; gap: .55rem; margin-bottom: .6rem; }
.launch-section-title > span { width: 28px; height: 28px; display: grid; flex: 0 0 28px; place-items: center; border-radius: 8px; color: var(--primary); background: color-mix(in srgb,var(--primary) 12%,transparent); font-size: .72rem; }
.launch-section-title h4 { margin: 0; color: var(--text-main); font-size: .82rem; }
.launch-section-title p { margin: .08rem 0 0; color: var(--text-muted); font-size: .66rem; }
.launch-form-grid { display: grid; gap: .58rem .7rem; }
.launch-grid-main { grid-template-columns: repeat(4,minmax(0,1fr)); }
.launch-grid-classification { grid-template-columns: 1fr 1.25fr; }
.launch-grid-payment { grid-template-columns: 1.35fr 1fr .8fr; }
.launch-form-grid .form-group { min-width: 0; margin-bottom: 0; }
.launch-form-grid .form-group label, .launch-observation-field > label, .launch-upload-field > label { margin-bottom: .32rem; color: var(--text-main); font-size: .72rem; font-weight: 700; }
.launch-form-grid input, .launch-form-grid select { min-width: 0; width: 100%; }
.launch-person-control { display: grid; grid-template-columns: minmax(0,1fr) 39px; gap: .4rem; }
.launch-quick-add { width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid color-mix(in srgb,var(--primary) 35%,var(--border-color)); border-radius: 9px; color: var(--primary); background: color-mix(in srgb,var(--primary) 9%,var(--card-bg)); cursor: pointer; transition: .18s ease; }
.launch-quick-add:hover { color: #fff; border-color: var(--primary); background: var(--primary); transform: translateY(-1px); }
.launch-quick-add:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.launch-modal-card .form-group input, .launch-modal-card .form-group select { min-height: 39px; padding: .55rem .7rem; font-size: .88rem; }
.launch-span-2 { grid-column: span 2; }
.launch-span-full { grid-column: 1 / -1; }
.label-optional { display: inline-flex; margin-left: .25rem; padding: .12rem .32rem; border-radius: 999px; color: var(--text-muted); background: color-mix(in srgb,var(--text-muted) 9%,transparent); font-size: .58rem; font-weight: 700; text-transform: uppercase; }
.currency-input { position: relative; }
.currency-input span { position: absolute; z-index: 1; left: .72rem; top: 50%; translate: 0 -50%; color: var(--primary); font-size: .7rem; font-weight: 800; pointer-events: none; }
.launch-modal-card .currency-input input { padding-left: 2.55rem; font-weight: 750; }
.launch-observation-field { margin-bottom: 0; }
.launch-observation-field input { width: 100%; }
.launch-observation-field .field-help { display: block; margin-top: .22rem; font-size: .6rem; }
.launch-details-section { display: grid; grid-template-columns: 170px minmax(0,1fr); align-items: center; gap: .75rem; }
.launch-details-section .launch-section-title { margin: 0; }
.launch-details-section .launch-section-title p { max-width: 120px; }
.launch-detail-options { display: grid; grid-template-columns: 1.2fr .8fr; gap: .55rem; align-items: stretch; }
.launch-upload-field { min-width: 0; margin: 0; padding: .5rem .65rem; border: 1px dashed var(--border-color); border-radius: 10px; background: color-mix(in srgb,var(--card-bg) 70%,transparent); }
.launch-modal-card #lanc-comprovante { width: 100%; min-height: 30px; padding: .1rem; border: 0; background: transparent; font-size: .66rem; cursor: pointer; }
.launch-modal-card #lanc-comprovante::file-selector-button { margin-right: .45rem; padding: .35rem .55rem; border: 1px solid var(--border-color); border-radius: 7px; color: var(--text-main); background: var(--card-bg); font-size: .65rem; font-weight: 700; cursor: pointer; }
.launch-upload-field small { color: var(--text-muted); font-size: .62rem; }
.launch-repeat-card { display: flex; align-items: center; gap: .6rem; margin: 0; padding: .5rem .65rem; border: 1px solid color-mix(in srgb,var(--primary) 20%,var(--border-color)); border-radius: 10px; background: color-mix(in srgb,var(--primary) 6%,transparent); }
.launch-repeat-toggle { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.launch-repeat-toggle input { width: 18px; height: 18px; flex: 0 0 18px; accent-color: var(--primary); cursor: pointer; }
.launch-repeat-toggle label { display: flex; align-items: center; gap: .55rem; margin: 0; color: var(--text-main); font-size: .72rem; font-weight: 750; cursor: pointer; }
.launch-repeat-toggle label > i { color: var(--primary); }
.launch-repeat-toggle label span { display: flex; flex-direction: column; }
.launch-repeat-toggle label small { margin-top: .1rem; color: var(--text-muted); font-size: .6rem; font-weight: 500; }
.launch-form-actions { position: sticky; z-index: 3; bottom: 0; justify-content: flex-end; margin: 0 -1.35rem; padding: .7rem 1.35rem; border-top: 1px solid var(--border-color); background: color-mix(in srgb,var(--card-bg) 94%,transparent); backdrop-filter: blur(12px); }
.launch-form-actions .btn { width: auto; min-width: 150px; margin: 0; }
.badge-transferencia { color: #a78bfa; background: color-mix(in srgb,#8b5cf6 14%,transparent); }
.text-transfer { color: #a78bfa; }
.quick-note-form { display: flex; gap: .65rem; margin-bottom: 1rem; }
.quick-note-form input { flex: 1; }
.quick-note-form .btn { width: auto; margin: 0; white-space: nowrap; }
.quick-note-list { display: flex; flex-wrap: wrap; gap: .55rem; }
.quick-note-chip { display: inline-flex; align-items: center; gap: .45rem; max-width: 100%; padding: .5rem .6rem; border: 1px solid var(--border-color); border-radius: 999px; background: var(--bg-color); color: var(--text-main); font-size: .78rem; }
.quick-note-chip > i { color: var(--primary); }
.quick-note-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quick-note-chip button { border: 0; background: transparent; color: var(--text-muted); cursor: pointer; padding: .15rem; }
.quick-note-chip .delete-note:hover { color: var(--danger); }
.quick-note-chip .edit-note:hover { color: var(--primary); }
.quick-note-chip .delete-description:hover { color: var(--danger); }
.quick-note-chip .edit-description:hover { color: var(--primary); }
.quick-note-form.preset-linked-form { display: grid; grid-template-columns: minmax(170px,.8fr) minmax(220px,1.5fr) auto auto; }
.quick-note-chip.linked-preset-chip span { display: flex; flex-direction: column; white-space: normal; }
@media (max-width: 900px) { .quick-note-form.preset-linked-form { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .quick-note-form.preset-linked-form { grid-template-columns: 1fr; } }
.preset-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.preset-settings-section { min-width: 0; padding: 1rem; border: 1px solid var(--border-color); border-radius: 12px; background: color-mix(in srgb, var(--bg-color) 55%, var(--card-bg)); }
.preset-settings-section h4 { display: flex; align-items: center; gap: .45rem; color: var(--text-main); font-size: .88rem; margin-bottom: .75rem; }
.preset-settings-section h4 i { color: var(--primary); }
.category-flow-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.category-create-card { display:flex; flex-direction:column; }
.category-create-card > form { display:flex; flex-direction:column; min-height:0; }
.category-flow-header h3 { margin:.15rem 0; color:var(--text-main); font-size:1.3rem; }
.category-flow-header p { color:var(--text-muted); font-size:.76rem; }
.category-flow-legend { display:flex; gap:.65rem; flex-wrap:wrap; color:var(--text-muted); font-size:.65rem; font-weight:700; }
.category-flow-legend span { display:flex; align-items:center; gap:.3rem; }
.category-flow-legend .fa-circle-check { color:var(--primary); }
.category-flow { display:grid; grid-template-columns:minmax(0,1.15fr) 58px minmax(0,1fr) 58px minmax(0,1fr); align-items:stretch; }
.category-flow-node { position:relative; padding:1rem; border:1px solid var(--border-color); border-radius:14px; background:var(--surface-soft); box-shadow:var(--shadow-sm); transition:border-color .2s,transform .2s,opacity .2s; }
.category-flow-node:focus-within { border-color:var(--primary); transform:translateY(-2px); }
.category-flow-node header { display:flex; align-items:center; gap:.55rem; padding-bottom:.8rem; margin-bottom:.8rem; border-bottom:1px solid var(--border-color); }
.category-flow-node header > div { display:grid; flex:1; gap:.08rem; }
.category-flow-node header strong { color:var(--text-main); font-size:.82rem; }
.category-flow-node header small { color:var(--text-muted); font-size:.61rem; }
.category-flow-number { display:grid; place-items:center; width:28px; height:28px; border-radius:9px; color:#fff; background:var(--primary); font-size:.72rem; font-weight:900; }
.category-flow-status { padding:.25rem .42rem; border-radius:999px; color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,transparent); font-size:.55rem; font-weight:900; text-transform:uppercase; }
.category-flow-node.is-optional:not(.has-value) { opacity:.72; }
.category-flow-node.is-optional.has-value { border-color:color-mix(in srgb,var(--primary) 55%,var(--border-color)); opacity:1; }
.category-flow-two { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.category-color-field { display:flex; align-items:center; gap:.55rem; min-height:42px; padding:.3rem .5rem; border:1px solid var(--border-color); border-radius:8px; background:var(--input-bg); }
.category-color-field input { width:35px!important; height:30px!important; padding:0; border:0; cursor:pointer; }
.category-color-field span { color:var(--text-muted); font-size:.61rem; }
.category-flow-node textarea { width:100%; resize:vertical; min-height:84px; }
.category-flow-connector { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.28rem; color:var(--primary); }
.category-flow-connector span { display:grid; place-items:center; width:32px; height:32px; border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border-color)); border-radius:50%; background:var(--card-bg); }
.category-flow-connector small { color:var(--text-muted); font-size:.55rem; font-weight:800; text-transform:uppercase; }
.category-flow-example { display:flex; align-items:flex-start; gap:.35rem; margin-top:.65rem; color:var(--text-muted); font-size:.61rem; line-height:1.35; }
.category-flow-example i { color:var(--primary); margin-top:.08rem; }
.category-variable-panel { margin-top:.55rem; border:0; border-radius:10px; background:transparent; overflow:visible; }
.category-variable-panel > summary { display:flex; align-items:center; justify-content:flex-end; padding:0; cursor:pointer; list-style:none; user-select:none; }
.category-variable-panel > summary::-webkit-details-marker { display:none; }
.category-variable-panel[open] > summary { border-bottom:0; }
.category-variable-heading { display:flex; align-items:center; gap:.55rem; min-width:180px; }
.category-variable-heading > i { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; color:var(--primary); background:color-mix(in srgb,var(--primary) 13%,transparent); }
.category-variable-heading div { display:grid; gap:.1rem; }
.category-variable-heading strong { color:var(--text-main); font-size:.72rem; }
.category-variable-heading small { color:var(--text-muted); font-size:.58rem; }
.category-variable-toggle { display:flex; align-items:center; gap:.4rem; padding:.3rem .5rem; border:1px solid color-mix(in srgb,var(--primary) 25%,var(--border-color)); border-radius:7px; color:var(--primary); background:color-mix(in srgb,var(--primary) 7%,transparent); font-size:.58rem; font-weight:850; white-space:nowrap; }
.category-variable-toggle .hide-label { display:none; }
.category-variable-panel[open] .category-variable-toggle .show-label { display:none; }
.category-variable-panel[open] .category-variable-toggle .hide-label { display:inline; }
.category-variable-toggle i { transition:transform .2s; }
.category-variable-panel[open] .category-variable-toggle i { transform:rotate(180deg); }
.category-variable-list { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.38rem; margin-top:.45rem; padding:.6rem; border:1px solid var(--border-color); border-radius:9px; background:var(--surface-soft); }
.category-variable-list button { padding:.3rem .48rem; border:1px solid color-mix(in srgb,var(--primary) 24%,var(--border-color)); border-radius:7px; color:var(--primary); background:color-mix(in srgb,var(--primary) 7%,var(--card-bg)); font:inherit; font-size:.62rem; font-weight:800; cursor:pointer; transition:transform .15s,border-color .15s,background .15s; }
.category-variable-list button:hover { transform:translateY(-1px); border-color:var(--primary); background:color-mix(in srgb,var(--primary) 14%,var(--card-bg)); }
.category-variable-list button:active { transform:translateY(0); }
.category-flow-preview { display:flex; align-items:center; justify-content:center; gap:.65rem; margin-top:1rem; padding:.65rem; border:1px dashed color-mix(in srgb,var(--primary) 40%,var(--border-color)); border-radius:10px; color:var(--primary); background:color-mix(in srgb,var(--primary) 5%,transparent); }
.category-flow-preview > span { display:flex; align-items:center; gap:.5rem; min-width:0; }
.category-flow-preview b { max-width:210px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-main); font-size:.68rem; }
.category-flow-preview .fa-chevron-right { color:var(--text-muted); font-size:.55rem; }
.category-existing-panel { margin-top:1rem; padding:1rem; border:1px solid var(--border-color); border-radius:12px; background:var(--surface-soft); }
.category-existing-panel[hidden] { display:none; }
.category-existing-panel > header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:.75rem; margin-bottom:.75rem; border-bottom:1px solid var(--border-color); }
.category-existing-panel > header > div { display:flex; align-items:center; gap:.6rem; }
.category-existing-panel > header > div > i { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,transparent); }
.category-existing-panel > header span { display:grid; gap:.08rem; }
.category-existing-panel > header strong { color:var(--text-main); font-size:.75rem; }
.category-existing-panel > header small { color:var(--text-muted); font-size:.6rem; }
.category-existing-panel > header > b { padding:.28rem .5rem; border-radius:999px; color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,transparent); font-size:.62rem; }
.category-existing-toolbar { display:flex; align-items:center; gap:.65rem; margin-bottom:.7rem; }
.category-existing-toolbar label { position:relative; flex:1; }
.category-existing-toolbar label > i { position:absolute; left:.7rem; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:.65rem; pointer-events:none; }
.category-existing-toolbar input { width:100%; height:36px; padding:.45rem .7rem .45rem 2rem; border:1px solid var(--border-color); border-radius:8px; color:var(--text-main); background:var(--input-bg); font-size:.68rem; }
.category-existing-toolbar button { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; height:36px; padding:0 .7rem; border:1px solid color-mix(in srgb,var(--danger) 30%,var(--border-color)); border-radius:8px; color:var(--danger); background:color-mix(in srgb,var(--danger) 7%,transparent); font:inherit; font-size:.65rem; font-weight:800; white-space:nowrap; cursor:pointer; }
.category-existing-toolbar button:hover { border-color:var(--danger); background:color-mix(in srgb,var(--danger) 12%,transparent); }
.category-existing-list { display:grid; gap:.55rem; max-height:min(180px,22vh); overflow-y:auto; overscroll-behavior:contain; padding-right:.35rem; scrollbar-gutter:stable; }
.category-existing-list { scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--primary) 68%,var(--text-muted)) color-mix(in srgb,var(--bg-color) 72%,transparent); }
.category-existing-list::-webkit-scrollbar { width:9px; }
.category-existing-list::-webkit-scrollbar-track { border-radius:999px; background:color-mix(in srgb,var(--bg-color) 72%,transparent); }
.category-existing-list::-webkit-scrollbar-thumb { border:2px solid var(--surface-soft); border-radius:999px; background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 82%,#fff),var(--primary)); }
.category-existing-list::-webkit-scrollbar-thumb:hover { background:color-mix(in srgb,var(--primary) 88%,#fff); }
.category-existing-list .settings-empty { min-height:100px; }
.category-existing-item { display:grid; grid-template-columns:30px minmax(0,1fr); gap:.6rem; padding:.65rem; border:1px solid var(--border-color); border-radius:10px; background:var(--card-bg); }
.category-existing-item > i { display:grid; place-items:center; width:30px; height:30px; border-radius:8px; color:var(--primary); background:color-mix(in srgb,var(--primary) 10%,transparent); }
.category-existing-content { min-width:0; display:grid; gap:.38rem; }
.category-existing-content > strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-main); font-size:.72rem; }
.category-existing-title { display:flex; align-items:center; justify-content:space-between; gap:.6rem; min-width:0; }
.category-existing-title > strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-main); font-size:.72rem; }
.category-existing-edit { display:inline-flex; align-items:center; gap:.3rem; flex:none; padding:.25rem .42rem; border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border-color)); border-radius:7px; color:var(--primary); background:color-mix(in srgb,var(--primary) 7%,transparent); font:inherit; font-size:.58rem; font-weight:850; cursor:pointer; }
.category-existing-edit:hover { border-color:var(--primary); background:color-mix(in srgb,var(--primary) 13%,transparent); }
.category-existing-actions { display:flex; align-items:center; gap:.3rem; flex:none; }
.category-existing-delete { display:inline-flex; align-items:center; gap:.3rem; padding:.25rem .42rem; border:1px solid color-mix(in srgb,var(--danger) 28%,var(--border-color)); border-radius:7px; color:var(--danger); background:color-mix(in srgb,var(--danger) 7%,transparent); font:inherit; font-size:.58rem; font-weight:850; cursor:pointer; }
.category-existing-delete:hover { border-color:var(--danger); background:color-mix(in srgb,var(--danger) 13%,transparent); }
.category-existing-notes { display:flex; flex-wrap:wrap; gap:.35rem; }
.category-existing-notes span { display:inline-flex; align-items:center; gap:.25rem; max-width:100%; padding:.25rem .42rem; border-radius:7px; color:var(--text-muted); background:var(--surface-soft); font-size:.6rem; }
.category-existing-notes span i { color:var(--primary); font-size:.55rem; }
.category-existing-empty-note { color:var(--text-muted); font-size:.59rem; font-style:italic; }
@media(max-width:650px){.category-create-card{max-height:96vh!important;overflow-y:auto!important}.category-existing-toolbar{align-items:stretch;flex-direction:column}.category-existing-toolbar button{width:100%}.category-existing-list{max-height:220px}}
@media(max-width:900px){.category-flow-header{align-items:flex-start;flex-direction:column}.category-flow{grid-template-columns:1fr}.category-flow-connector{height:52px}.category-flow-connector span{transform:rotate(90deg)}.category-flow-preview>span{flex-wrap:wrap;justify-content:center}}
.template-help { display: block; margin: -.25rem 0 .85rem; color: var(--text-muted); font-size: .7rem; line-height: 1.5; }
.template-help i { color: var(--primary); margin-right: .25rem; }
.template-help code { padding: .12rem .3rem; border-radius: 5px; color: var(--primary); background: rgba(79,70,229,.09); font-family: inherit; font-weight: 700; white-space: nowrap; }

/* Dashboard */
.dashboard-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.dashboard-toolbar h2 { color: var(--text-main); font-size: 1.35rem; margin-bottom: .25rem; }
.dashboard-toolbar p { color: var(--text-muted); font-size: .9rem; }
.period-toggle {
    display: inline-flex;
    padding: 4px;
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
}
.period-toggle button {
    border: 0;
    background: transparent;
    color: var(--text-muted);
    padding: .55rem 1rem;
    border-radius: 7px;
    cursor: pointer;
    font-weight: 600;
}
.period-toggle button.active { background: var(--primary); color: #fff; }
.dashboard-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
}
.stat-card {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.stat-card.summary {
    padding: 1rem 1.5rem;
}
.featured-balance {
    border-color: rgba(79, 70, 229, .35);
    background: linear-gradient(135deg, var(--card-bg), rgba(79, 70, 229, .08));
}
.stat-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}
.stat-icon.income { background: rgba(16, 185, 129, 0.1); color: var(--success); }
.stat-icon.expense { background: rgba(239, 68, 68, 0.1); color: var(--danger); }
.stat-icon.balance { background: rgba(79, 70, 229, 0.1); color: var(--primary); }

.stat-info h3 {
    font-size: 0.875rem;
    color: var(--text-muted);
    font-weight: 500;
    margin-bottom: 0.25rem;
}
.stat-info p {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-main);
}

.forecast-card {
    margin-top: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    border-left: 4px solid var(--primary);
}
.forecast-heading { display: flex; flex-direction: column; gap: .35rem; color: var(--text-main); }
.forecast-heading > span { font-weight: 700; }
.forecast-heading > span i { color: var(--primary); margin-right: .4rem; }
.forecast-heading small { color: var(--text-muted); }
.forecast-values { display: grid; grid-template-columns: repeat(3, minmax(145px, 1fr)); gap: 2rem; flex: 1; max-width: 760px; }
.forecast-values > div { display: flex; flex-direction: column; gap: .3rem; }
.forecast-values span { color: var(--text-muted); font-size: .8rem; }
.forecast-values strong { color: var(--text-main); font-size: 1.1rem; }
.forecast-values .forecast-total { border-left: 1px solid var(--border-color); padding-left: 2rem; }
.forecast-values .forecast-total strong { font-size: 1.3rem; }

.charts-container {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 1.5rem;
}
.chart-card h3 {
    margin-bottom: 1rem;
    font-size: 1.1rem;
    color: var(--text-main);
}
.chart-card { min-height: 330px; }
.chart-card canvas { max-height: 255px; }
.competence-chip {
    display: inline-flex;
    padding: .3rem .55rem;
    border-radius: 999px;
    background: rgba(79, 70, 229, .1);
    color: var(--primary);
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
    text-transform: capitalize;
}
.field-help { display: block; color: var(--text-muted); font-size: .72rem; margin-top: .35rem; }
.empty-table { text-align: center !important; color: var(--text-muted); padding: 2rem !important; }
.alert-info { background: rgba(59, 130, 246, .1); color: #2563eb; border-color: rgba(59, 130, 246, .2); }

/* Forms */
.form-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}
.form-row .form-group {
    flex: 1;
    min-width: 200px;
}
.form-row .flex-2 { flex: 2; }
.form-actions {
    display: flex;
    gap: 1rem;
    justify-content: flex-end;
    margin-top: 1rem;
}
.form-actions .btn {
    width: auto;
    margin-bottom: 0;
}

/* Tables */
.table-responsive {
    overflow-x: auto;
}
.data-table {
    width: 100%;
    border-collapse: collapse;
}
.data-table th, .data-table td {
    padding: 1rem;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.data-table th {
    background: var(--bg-color);
    font-weight: 600;
    color: var(--text-muted);
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.data-table tbody tr:hover {
    background: #f8fafc;
}

/* Colors & Badges */
.text-success { color: var(--success); font-weight: 600; }
.text-danger { color: var(--danger); font-weight: 600; }

.badge {
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    display: inline-block;
}
.badge-pago { background: rgba(16, 185, 129, 0.1); color: var(--success); }
.badge-pendente { background: rgba(245, 158, 11, 0.1); color: var(--warning); }
.badge-entrada { background: rgba(16, 185, 129, 0.1); color: var(--success); }
.badge-saida { background: rgba(239, 68, 68, 0.1); color: var(--danger); }

/* Category List */
.category-list {
    list-style: none;
}
.category-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid var(--border-color);
}
.cat-color-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 0.75rem;
    vertical-align: middle;
}
.action-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text-muted);
    padding: 0.5rem;
    transition: color 0.2s;
}
.action-btn.edit:hover { color: var(--info); }
.action-btn.delete:hover { color: var(--danger); }
.action-btn.edit-forma:hover { color: var(--info); }
.action-btn.delete-forma:hover { color: var(--danger); }

/* Alerts */
.alerts-container {
    margin-bottom: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.alert-box {
    padding: 1rem;
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    gap: 1rem;
    font-weight: 500;
}
.alert-warning {
    background: rgba(245, 158, 11, 0.1);
    color: var(--warning);
    border: 1px solid rgba(245, 158, 11, 0.2);
}
.alert-danger {
    background: rgba(239, 68, 68, 0.1);
    color: var(--danger);
    border: 1px solid rgba(239, 68, 68, 0.2);
}

/* Toasts */
.toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.toast {
    background: var(--card-bg);
    color: var(--text-main);
    padding: 1rem 1.5rem;
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 300px;
    transform: translateX(120%);
    animation: slideIn 0.3s forwards;
    border-left: 4px solid var(--primary);
}
.toast.success { border-left-color: var(--success); }
.toast.error { border-left-color: var(--danger); }

@keyframes slideIn {
    to { transform: translateX(0); }
}
@keyframes slideOut {
    to { transform: translateX(120%); opacity: 0; }
}

@media (max-width: 1440px) {
    :root { --sidebar-w: 230px; }
    .sidebar-header { padding: 1.4rem 1.2rem; }
    .sidebar-nav { padding: 1rem .75rem; gap: .3rem; }
    .nav-item { padding: .72rem .8rem; }
    .top-header { padding: 1.1rem 1.5rem; }
    .content-wrapper { padding: 1.5rem; }
    .dashboard-cards, .charts-container { gap: 1rem; }
    .dashboard-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .card { padding: 1.25rem; }
    .stat-card { gap: 1rem; }
    .forecast-card { gap: 1rem; }
    .forecast-values { gap: 1rem; }
    .data-table th, .data-table td { padding: .8rem .7rem; }
}

@media (max-width: 1100px) {
    :root { --sidebar-w: 210px; }
    .charts-container { grid-template-columns: 1fr; }
    .bank-summary-grid { grid-template-columns: repeat(2, 1fr); }
    .forecast-card { align-items: stretch; flex-direction: column; }
    .forecast-values { max-width: none; }
    .preset-settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .sidebar { width: min(84vw, 290px); transform: translateX(-105%); transition: transform .25s ease; box-shadow: var(--shadow-md); z-index: 40; }
    .sidebar.mobile-open { transform: translateX(0); }
    .sidebar-overlay { position: fixed; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(15, 23, 42, .48); z-index: 35; cursor: pointer; }
    body.menu-open { overflow: hidden; }
    body.menu-open .sidebar-overlay { display: block; }
    .main-content { margin-left: 0; }
    .mobile-menu-btn { display: inline-grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; border: 1px solid var(--border-color); border-radius: 9px; background: var(--card-bg); color: var(--text-main); cursor: pointer; }
    .top-header { padding: .9rem 1rem; gap: .75rem; }
    .top-header h1 { font-size: 1.25rem; }
    .content-wrapper { padding: 1rem; }
    .dashboard-cards { grid-template-columns: 1fr; }
    .charts-container { grid-template-columns: 1fr; }
    .dashboard-toolbar, .forecast-card { align-items: stretch; flex-direction: column; }
    .period-toggle { align-self: flex-start; }
    .forecast-values { grid-template-columns: 1fr; gap: 1rem; max-width: none; }
    .forecast-values .forecast-total { border-left: 0; border-top: 1px solid var(--border-color); padding-left: 0; padding-top: 1rem; }
    .top-header { align-items: center; }
    .header-right { flex-wrap: wrap; }
    .workspace-control select { min-width: 150px; max-width: 190px; }
    .workspace-inline-form { align-items: stretch; flex-direction: column; }
    .workspace-invite-form select { width: 100%; }
    .settings-section-heading { flex-direction: column; }
    .category-card-grid, .payment-method-grid { grid-template-columns: 1fr; }
    .bank-account-grid, .bank-summary-grid { grid-template-columns: 1fr; }
    .bank-page-header, .statement-heading { align-items: stretch; flex-direction: column; }
    .bank-page-header select { min-width: 0; width: 100%; }
    .launch-grid-main { grid-template-columns: 1fr 1fr; }
    .launch-grid-classification, .launch-grid-payment { grid-template-columns: 1fr 1fr; }
    .launch-grid-payment .launch-bank-field { grid-column: span 2; }
    .launch-details-section { display: block; }
    .launch-details-section .launch-section-title { margin-bottom: .6rem; }
    .launch-details-section .launch-section-title p { max-width: none; }
    .launch-detail-options { grid-template-columns: 1fr; }
    .quick-note-form { flex-direction: column; }
    .preset-settings-grid { grid-template-columns: 1fr; }
    .timeline-summary { grid-template-columns: 1fr; }
    .modal-card { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); padding: 1rem; }
    .table-responsive { width: 100%; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 520px) {
    .top-header { align-items: stretch; flex-direction: column; }
    .header-right, .month-filter { width: 100%; }
    .month-filter { justify-content: space-between; flex-wrap: wrap; gap: .6rem; }
    .launch-filter-mode-wrap, .month-filter-field { flex: 1; min-width: 145px; }
    .dashboard-date-filter { width: 100%; flex-wrap: wrap; }
    #rel-form-pagamentos > div { grid-template-columns: 1fr !important; }
    .month-filter input, .launch-filter-mode-wrap select { min-width: 0; width: 100%; }
    .dashboard-toolbar { margin-bottom: 1rem; }
    .period-toggle { display: flex; width: 100%; }
    .period-toggle button { flex: 1; }
    .card { padding: 1rem; }
    .form-row .form-group { min-width: 100%; }
    .form-actions { flex-direction: column-reverse; }
    .form-actions .btn { width: 100%; }
    .launch-modal-card { width: 100%; max-height: 100vh; border-radius: 0; }
    .launch-modal-header { align-items: flex-start; padding: 1rem; }
    .launch-required-note { display: none; }
    .launch-modal-card form { padding: .75rem 1rem 0; }
    .launch-section { padding: .8rem; }
    .launch-grid-main, .launch-grid-classification, .launch-grid-payment { grid-template-columns: 1fr; }
    .launch-grid-payment .launch-bank-field, .launch-span-2, .launch-span-full { grid-column: 1; }
    .launch-form-actions { margin-inline: -1rem; padding-inline: 1rem; }
    .debt-installment-fields { grid-template-columns: 1fr !important; }
    .launch-page-actions { width: 100%; }
    .launch-page-actions .btn { flex: 1; white-space: nowrap; padding-inline: .7rem; }
    .receipt-import-card { grid-template-columns: 40px minmax(0,1fr); }
    .receipt-import-actions { grid-column: 1 / -1; justify-content: flex-end; }
}
