/* Balanço Financeiro — Anysa Events */
.financial-page {
    background: #f3ece3;
    margin: -32px;
    padding: 0;
    min-height: calc(100vh - 80px);
}

.financial-header-bar {
    background: #3d3428;
    color: #fae9cb;
    padding: 14px 28px;
    font-family: var(--font-serif);
    font-size: 15px;
    letter-spacing: 2px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.financial-header-bar .actions .btn-anysa {
    padding: 8px 16px;
    font-size: 10px;
    border-color: rgba(250,233,203,0.5);
    color: #fae9cb;
}

.financial-grid {
    display: grid;
    grid-template-columns: 220px 1fr 280px 260px;
    gap: 16px;
    padding: 20px;
    align-items: start;
}

@media (max-width: 1200px) {
    .financial-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    .financial-page {
        margin: -12px;
        min-height: auto;
    }
    .financial-grid { grid-template-columns: 1fr !important; }
    .fin-card { padding: 14px; }
    .fin-variance-box { grid-template-columns: 1fr; }
}

.fin-card {
    background: #faf6f0;
    border: 1px solid rgba(145,124,93,0.2);
    padding: 18px;
    margin-bottom: 16px;
}

.fin-card-dark {
    background: #3d3428;
    color: #fae9cb;
}

.fin-card-title {
    font-family: var(--font-serif);
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #917c5d;
    margin: 0 0 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(145,124,93,0.25);
}

.fin-card-dark .fin-card-title {
    color: #fae9cb;
    border-bottom-color: rgba(250,233,203,0.2);
}

.fin-metric {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
    font-size: 12px;
}

.fin-metric-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(145,124,93,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 14px;
}

.fin-metric-value {
    font-family: var(--font-serif);
    font-size: 16px;
    color: #3d3428;
    display: block;
}

.fin-metric-label {
    color: #8a8580;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.fin-metric-sub {
    font-size: 11px;
    color: #917c5d;
}

.fin-pax {
    text-align: center;
    padding: 24px 16px;
}

.fin-pax-number {
    font-family: var(--font-serif);
    font-size: 42px;
    color: #3d3428;
    line-height: 1;
}

.fin-pax-label {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #917c5d;
    margin-top: 4px;
}

.fin-donut-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.fin-donut {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fin-donut-center {
    position: absolute;
    width: 90px;
    height: 90px;
    background: #faf6f0;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 10px;
    color: #8a8580;
    z-index: 1;
}

.fin-donut-center strong {
    font-family: var(--font-serif);
    font-size: 13px;
    color: #3d3428;
    display: block;
}

.fin-legend {
    display: flex;
    gap: 16px;
    font-size: 11px;
    flex-wrap: wrap;
    justify-content: center;
}

.fin-legend span::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    margin-right: 4px;
    vertical-align: middle;
}

.fin-legend .paid::before { background: #4a6741; }
.fin-legend .remaining::before { background: #d4c4a8; }

.fin-summary-box {
    background: #fff;
    border: 1px solid rgba(145,124,93,0.15);
    padding: 12px;
    font-size: 12px;
    line-height: 1.6;
    color: #52565c;
    margin-top: 12px;
}

.fin-bar-row { margin-bottom: 12px; }

.fin-bar-label {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    margin-bottom: 4px;
}

.fin-bar-track {
    height: 22px;
    background: #e8dfd3;
    border-radius: 2px;
    overflow: hidden;
}

.fin-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #917c5d, #b09878);
    border-radius: 2px;
    min-width: 2px;
}

.fin-bar-fill.goal { background: #c4b59a; }

.fin-variance-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 12px;
}

.fin-variance-item {
    background: #fff;
    border: 1px solid rgba(145,124,93,0.15);
    padding: 10px;
    text-align: center;
}

.fin-variance-item strong {
    display: block;
    font-family: var(--font-serif);
    font-size: 15px;
    color: #3d3428;
}

.fin-variance-item span { font-size: 10px; color: #8a8580; }

.fin-cat-row {
    display: grid;
    grid-template-columns: 24px 1fr auto auto;
    gap: 8px;
    align-items: center;
    margin-bottom: 4px;
    font-size: 12px;
}

.fin-cat-icon { font-size: 16px; text-align: center; }

.fin-cat-bar {
    height: 8px;
    background: #e8dfd3;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 10px;
}

.fin-cat-bar-fill {
    height: 100%;
    background: #917c5d;
    border-radius: 4px;
}

.fin-cat-amount {
    font-family: var(--font-serif);
    white-space: nowrap;
}

.fin-cat-pct {
    color: #8a8580;
    font-size: 11px;
    min-width: 42px;
    text-align: right;
}

.fin-total-row {
    border-top: 2px solid #917c5d;
    padding-top: 10px;
    margin-top: 10px;
    font-family: var(--font-serif);
    font-size: 16px;
    display: flex;
    justify-content: space-between;
}

.fin-service-group { margin-bottom: 16px; }

.fin-service-group h4 {
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin: 0 0 8px;
}

.fin-service-group h4.confirmed { color: #4a6741; }
.fin-service-group h4.validation { color: #c17f3a; }
.fin-service-group h4.missing { color: #8a8580; }

.fin-service-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 12px;
}

.fin-service-list li {
    padding: 4px 0 4px 18px;
    position: relative;
    color: #52565c;
}

.fin-service-list li::before {
    content: '•';
    position: absolute;
    left: 4px;
    color: #917c5d;
}

.fin-note {
    font-size: 12px;
    line-height: 1.7;
    color: #e8dfd3;
}

.fin-footer-icons {
    display: flex;
    justify-content: center;
    gap: 24px;
    padding: 20px;
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #917c5d;
    border-top: 1px solid rgba(145,124,93,0.2);
    flex-wrap: wrap;
}

.fin-footer-signature {
    text-align: center;
    font-family: var(--font-serif);
    font-style: italic;
    color: #917c5d;
    padding-bottom: 24px;
    font-size: 14px;
}

.fin-edit-panel {
    background: #fff;
    border: 1px solid var(--border);
    padding: 20px;
    margin: 0 20px 20px;
}

.fin-table-mini {
    width: 100%;
    font-size: 12px;
    margin-top: 8px;
}

.fin-table-mini td { padding: 4px 0; }
.fin-table-mini td:last-child { text-align: right; font-family: var(--font-serif); }

@media print {
    body * { visibility: hidden; }
    .financial-page, .financial-page * { visibility: visible; }
    .financial-page {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        margin: 0;
        min-height: auto;
        background: #f3ece3 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .financial-header-bar .actions,
    .toolbar,
    .sidebar,
    .topbar,
    .fin-edit-panel { display: none !important; }
    .financial-grid {
        grid-template-columns: 200px 1fr 240px 220px;
        gap: 10px;
        padding: 10px;
    }
    @page { size: landscape; margin: 8mm; }
}
