/* Finance & Revenue Page - PAUPE Admin */

/* Revenue Stats */
.revenue-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.revenue-stat {
    background: var(--bg-card);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
}

.revenue-stat.highlight {
    background: linear-gradient(135deg, rgba(104, 204, 88, 0.1) 0%, rgba(104, 204, 88, 0.02) 100%);
    border-color: rgba(104, 204, 88, 0.3);
}

.revenue-stat-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: var(--spacing-sm);
}

.revenue-stat-value {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    margin-bottom: 4px;
}

.revenue-stat-value.green { color: var(--accent-green); }

.revenue-stat-change {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--font-size-sm);
    padding: 4px 8px;
    border-radius: var(--radius-sm);
}

.revenue-stat-change.positive {
    background: var(--accent-green-dim);
    color: var(--accent-green);
}

.revenue-stat-change.negative {
    background: rgba(239, 68, 68, 0.15);
    color: var(--accent-red);
}

.revenue-stat-change svg {
    width: 12px;
    height: 12px;
}

/* Revenue Chart Section */
.revenue-chart-section {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.revenue-chart-card {
    background: var(--bg-card);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
}

.chart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-lg);
}

.chart-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
}

.chart-period-selector {
    display: flex;
    gap: 4px;
    background: var(--bg-secondary);
    padding: 4px;
    border-radius: var(--radius-md);
}

.period-btn {
    padding: 6px 12px;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--text-secondary);
    background: none;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.period-btn:hover {
    color: var(--text-primary);
}

.period-btn.active {
    background: var(--bg-card);
    color: var(--text-primary);
}

/* Simple Bar Chart */
.revenue-bars {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    height: 200px;
    padding: var(--spacing-md) 0;
}

.revenue-bar-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
    flex: 1;
}

.revenue-bar {
    width: 40px;
    background: linear-gradient(180deg, var(--accent-green) 0%, rgba(104, 204, 88, 0.6) 100%);
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    transition: all var(--transition-fast);
    position: relative;
}

.revenue-bar:hover {
    background: var(--accent-green);
}

.revenue-bar::after {
    content: attr(data-value);
    position: absolute;
    top: -24px;
    left: 50%;
    transform: translateX(-50%);
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.revenue-bar:hover::after {
    opacity: 1;
}

.revenue-bar-label {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
}

/* Revenue Breakdown */
.revenue-breakdown {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.breakdown-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    background: var(--bg-secondary);
    border-radius: var(--radius-md);
}

.breakdown-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
}

.breakdown-icon svg {
    width: 20px;
    height: 20px;
}

.breakdown-icon.green { background: var(--accent-green-dim); color: var(--accent-green); }
.breakdown-icon.blue { background: var(--accent-blue-dim); color: var(--accent-blue); }
.breakdown-icon.purple { background: var(--accent-purple-dim); color: var(--accent-purple); }
.breakdown-icon.yellow { background: var(--accent-yellow-dim); color: var(--accent-yellow); }

.breakdown-info {
    flex: 1;
}

.breakdown-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: 2px;
}

.breakdown-value {
    font-size: var(--font-size-lg);
    font-weight: 600;
}

.breakdown-percent {
    font-size: var(--font-size-sm);
    color: var(--text-tertiary);
}

/* Billing Table */
.billing-section {
    background: var(--bg-card);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: var(--spacing-lg);
}

.billing-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-lg);
    border-bottom: 1px solid var(--border-subtle);
}

.billing-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
}

.billing-filters {
    display: flex;
    gap: var(--spacing-sm);
}

.billing-filter {
    padding: 6px 12px;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.billing-filter:hover {
    color: var(--text-primary);
}

.billing-filter.active {
    background: var(--bg-card);
    color: var(--text-primary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.billing-table {
    width: 100%;
}

.billing-table th,
.billing-table td {
    padding: var(--spacing-md) var(--spacing-lg);
    text-align: left;
}

.billing-table th {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--bg-secondary);
}

.billing-table td {
    border-bottom: 1px solid var(--border-subtle);
}

.billing-table tr:last-child td {
    border-bottom: none;
}

/* Business Cell in Billing */
.billing-business {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.billing-business-avatar {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-sm);
    background: var(--bg-elevated);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-xs);
    font-weight: 600;
}

.billing-business-name {
    font-size: var(--font-size-sm);
    font-weight: 500;
}

/* Plan Badge */
.plan-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 100px;
    font-size: var(--font-size-xs);
    font-weight: 500;
}

.plan-badge.pro {
    background: var(--accent-blue-dim);
    color: var(--accent-blue);
}

.plan-badge.starter {
    background: var(--bg-elevated);
    color: var(--text-secondary);
}

.plan-badge.enterprise {
    background: var(--accent-purple-dim);
    color: var(--accent-purple);
}

/* Payment Status */
.payment-status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 500;
}

.payment-status.paid {
    background: var(--accent-green-dim);
    color: var(--accent-green);
}

.payment-status.pending {
    background: var(--accent-yellow-dim);
    color: var(--accent-yellow);
}

.payment-status.failed {
    background: rgba(239, 68, 68, 0.15);
    color: var(--accent-red);
}

.payment-status.overdue {
    background: rgba(239, 68, 68, 0.15);
    color: var(--accent-red);
}

/* MRR/ARR Cards */
.mrr-section {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.mrr-card {
    background: var(--bg-card);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
}

.mrr-label {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: var(--spacing-sm);
}

.mrr-value {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

.mrr-breakdown {
    display: flex;
    gap: var(--spacing-md);
    font-size: var(--font-size-sm);
}

.mrr-breakdown-item {
    display: flex;
    align-items: center;
    gap: 4px;
}

.mrr-breakdown-item.new { color: var(--accent-green); }
.mrr-breakdown-item.churned { color: var(--accent-red); }
.mrr-breakdown-item.expansion { color: var(--accent-blue); }

/* Responsive */
@media (max-width: 1200px) {
    .revenue-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .revenue-chart-section {
        grid-template-columns: 1fr;
    }

    .mrr-section {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .revenue-stats {
        grid-template-columns: 1fr;
    }
}
