/**
 * ExDigital Pro — Painel Uniforme v3.0
 * Works together with exdigital-design-system.css
 * Scope: admin, cliente, staff, fornecedor
 */

/* Force DM Sans globally in panels */
.wrapper, .wrapper * {
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Sidebar footer position adjustment */
.sidebar-footer {
    width: var(--ex-sidebar-w) !important;
}

/* Page titles — consistent across all panels */
.content > h1:first-child,
.content > .h1:first-child,
.admin-content > h1:first-child,
.admin-content > .h1:first-child {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--ex-ink);
    letter-spacing: -0.02em;
    margin-bottom: 0.25rem;
}

/* Consistent card header icon coloring */
.card-header .bi,
.widget-header .bi {
    font-size: 1rem;
    opacity: 0.75;
}

/* Dashboard KPI blocks */
.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

/* Timeline / Activity feed */
.activity-item {
    display: flex;
    gap: 0.75rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--ex-border-light);
    align-items: flex-start;
}

.activity-item:last-child { border-bottom: none; }

.activity-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--ex-primary-mid);
    margin-top: 6px;
    flex-shrink: 0;
}

.activity-dot.success { background: var(--ex-success); }
.activity-dot.warning { background: var(--ex-warning); }
.activity-dot.danger  { background: var(--ex-danger); }

.activity-content { flex: 1; min-width: 0; }
.activity-text { font-size: 0.845rem; color: var(--ex-ink-3); line-height: 1.5; }
.activity-time { font-size: 0.72rem; color: var(--ex-muted-2); margin-top: 2px; }

/* Status indicators */
.status-dot {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
}

.status-dot::before {
    content: '';
    width: 6px; height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}

.status-dot.active  { color: var(--ex-success); }
.status-dot.pending { color: var(--ex-warning); }
.status-dot.error   { color: var(--ex-danger); }
.status-dot.info    { color: var(--ex-info); }

/* Empty states */
.empty-state {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--ex-muted);
}

.empty-state-icon {
    font-size: 3rem;
    opacity: 0.2;
    margin-bottom: 1rem;
    display: block;
}

.empty-state-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--ex-ink-3);
    margin-bottom: 0.5rem;
}

.empty-state-text {
    font-size: 0.867rem;
    color: var(--ex-muted);
    max-width: 320px;
    margin: 0 auto 1.25rem;
    line-height: 1.6;
}

/* Inline action group */
.inline-actions {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

/* Search filters bar */
.filters-bar {
    background: var(--ex-white);
    border: 1px solid var(--ex-border);
    border-radius: var(--ex-r-lg);
    padding: 0.875rem 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
    box-shadow: var(--ex-shadow-xs);
}

/* Smooth link transitions */
a { transition: color var(--ex-t-fast); }

/* Mobile responsive overrides */
@media (max-width: 768px) {
    .kpi-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }

    .filters-bar { padding: 0.75rem; gap: 0.5rem; }

    .stat-value { font-size: 1.3rem; }
}

@media (max-width: 480px) {
    .kpi-grid { grid-template-columns: 1fr; }
}

/* Visibility safety: prevent light text from disappearing on light surfaces */
.content .btn-light,
.admin-content .btn-light {
    color: var(--ex-ink-3) !important;
    border-color: var(--ex-border) !important;
}

.content .btn-light:hover,
.admin-content .btn-light:hover {
    color: var(--ex-ink) !important;
}

.content .dropdown-menu .dropdown-item,
.admin-content .dropdown-menu .dropdown-item {
    color: var(--ex-ink-3) !important;
}

.content .dropdown-menu .dropdown-item:hover,
.admin-content .dropdown-menu .dropdown-item:focus,
.admin-content .dropdown-menu .dropdown-item:hover {
    color: var(--ex-ink) !important;
}

/* Compatibility layer: old Bootstrap 4 badge classes still used in many pages */
.badge.badge-primary   { background: rgba(45,84,209,0.12) !important; color: var(--ex-primary) !important; border: 1px solid rgba(45,84,209,0.2) !important; }
.badge.badge-success   { background: rgba(16,185,129,0.12) !important; color: #059669 !important; border: 1px solid rgba(16,185,129,0.2) !important; }
.badge.badge-warning   { background: rgba(245,158,11,0.14) !important; color: #B45309 !important; border: 1px solid rgba(245,158,11,0.22) !important; }
.badge.badge-danger    { background: rgba(239,68,68,0.10) !important; color: #DC2626 !important; border: 1px solid rgba(239,68,68,0.18) !important; }
.badge.badge-info      { background: rgba(99,102,241,0.10) !important; color: var(--ex-info) !important; border: 1px solid rgba(99,102,241,0.18) !important; }
.badge.badge-secondary { background: rgba(107,114,128,0.10) !important; color: var(--ex-muted) !important; border: 1px solid rgba(107,114,128,0.16) !important; }
.badge.badge-dark      { background: var(--ex-ink-2) !important; color: #fff !important; border: 1px solid rgba(17,24,39,0.2) !important; }

/* Safety for accidental white text inside light surfaces */
.content .bg-white .text-white,
.admin-content .bg-white .text-white,
.content .card.bg-white .text-white,
.admin-content .card.bg-white .text-white {
    color: var(--ex-ink-3) !important;
}

/* Layering fix for dropdown action menus inside cards/tables */
.content .dropdown,
.admin-content .dropdown {
    position: relative;
}

.content .dropdown-menu,
.admin-content .dropdown-menu {
    z-index: 2000 !important;
}

.content .card.has-actions-dropdown,
.admin-content .card.has-actions-dropdown {
    overflow: visible !important;
}

.content .table-responsive.has-actions-dropdown,
.admin-content .table-responsive.has-actions-dropdown {
    overflow-x: auto !important;
    overflow-y: visible !important;
    position: relative;
    z-index: 5;
}

[data-actions-menu="1"] {
    position: relative;
    z-index: 10;
}

/* Table containment safety across all panel pages */
.content .card .table-responsive,
.admin-content .card .table-responsive {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.content .card .table-responsive > table,
.admin-content .card .table-responsive > table {
    width: 100%;
    min-width: 100%;
    margin-bottom: 0 !important;
}

.content .card .table-responsive > table.table-nowrap,
.admin-content .card .table-responsive > table.table-nowrap {
    width: max-content;
}

/* Better readability for light badges and helper chips */
.content .badge.text-bg-light,
.admin-content .badge.text-bg-light {
    color: var(--ex-ink-3) !important;
    border-color: var(--ex-border) !important;
}
