/**
 * AIIGIX CRM — Phase 3 UI (lists, detail views, kanban, mobile, empty states).
 * Module-safe: targets Perfex/Bootstrap class contracts used across core + modules.
 */

/* ── List page headers & toolbars ──────────────────────────────────────────── */

body.admin.aiigix-ui .content > .row > [class*="col-"] > h4,
body.admin.aiigix-ui .content h4.tw-font-bold,
body.admin.aiigix-ui .content .tw-text-xl {
    color: var(--aiigix-text, #0f172a);
    letter-spacing: -0.01em;
}

body.admin.aiigix-ui .content a.tw-mr-4,
body.admin.aiigix-ui .content .tw-text-sm:not(.btn) {
    color: var(--aiigix-indigo, #6366f1);
}

body.admin.aiigix-ui .content a.tw-mr-4:hover {
    color: var(--aiigix-indigo-dark, #4f46e5);
}

body.admin.aiigix-ui ._buttons {
    margin-bottom: 0.75rem;
}

body.admin.aiigix-ui ._buttons .btn,
body.admin.aiigix-ui ._buttons .btn-group > .btn {
    border-radius: var(--aiigix-radius-sm, 0.5rem);
}

body.admin.aiigix-ui ._filter_data .btn-default,
body.admin.aiigix-ui .btn-with-tooltip-group .btn-default {
    background: var(--aiigix-surface, #fff);
    border-color: var(--aiigix-border-strong, #cbd5e1);
    color: var(--aiigix-text-muted, #64748b);
    border-radius: var(--aiigix-radius-sm, 0.5rem);
}

body.admin.aiigix-ui ._filter_data .btn-default:hover,
body.admin.aiigix-ui ._filter_data.open .btn-default,
body.admin.aiigix-ui .btn-with-tooltip-group.open .btn-default {
    background: rgb(99 102 241 / 0.08);
    border-color: rgb(99 102 241 / 0.35);
    color: var(--aiigix-indigo, #6366f1);
}

body.admin.aiigix-ui ._filter_data .dropdown-menu,
body.admin.aiigix-ui .btn-with-tooltip-group .dropdown-menu {
    border-radius: var(--aiigix-radius-sm, 0.5rem);
    border: 1px solid var(--aiigix-border, #e2e8f0);
    box-shadow: var(--aiigix-shadow-lg);
    padding: 0.35rem 0;
}

body.admin.aiigix-ui ._filter_data .dropdown-menu .checkbox,
body.admin.aiigix-ui ._filter_data .dropdown-menu label {
    padding: 0.35rem 1rem;
    margin: 0;
}

body.admin.aiigix-ui ._filter_data .dropdown-menu .checkbox:hover {
    background: rgb(99 102 241 / 0.06);
}

/* Quick stats on list pages (invoices, etc.) */
body.admin.aiigix-ui .quick-top-stats .tw-bg-white,
body.admin.aiigix-ui [id$="_total"] .tw-border,
body.admin.aiigix-ui .finance-summary .col-md-6 > .row > .col-md-12 > p {
    border-radius: var(--aiigix-radius-sm, 0.5rem);
}

/* ── DataTables & list tables ─────────────────────────────────────────────── */

body.aiigix-ui .table-responsive {
    border-radius: var(--aiigix-radius, 0.75rem);
}

body.aiigix-ui table.dataTable {
    border-collapse: separate !important;
    border-spacing: 0;
}

body.aiigix-ui table.dataTable thead th,
body.aiigix-ui table.dataTable thead td {
    background: rgb(248 250 252 / 0.95);
    border-bottom: 2px solid var(--aiigix-border, #e2e8f0) !important;
    font-weight: 600;
    color: var(--aiigix-text, #0f172a);
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

body.aiigix-ui table.dataTable tbody tr {
    transition: background-color 0.12s ease;
}

body.aiigix-ui table.dataTable tbody tr:hover {
    background-color: rgb(99 102 241 / 0.04) !important;
}

body.aiigix-ui table.dataTable tbody td {
    border-top-color: var(--aiigix-border, #e2e8f0) !important;
    vertical-align: middle !important;
}

body.aiigix-ui table.dataTable tbody td:first-child,
body.aiigix-ui table.dataTable thead th:first-child {
    border-top-left-radius: 0;
}

body.aiigix-ui .dataTables_wrapper .dataTables_info {
    color: var(--aiigix-text-muted, #64748b);
    font-size: 0.8125rem;
}

body.aiigix-ui .dataTables_wrapper .dataTables_paginate .paginate_button {
    border-radius: var(--aiigix-radius-sm, 0.5rem) !important;
    margin-left: 2px;
    margin-right: 2px;
}

body.aiigix-ui .dt-buttons .btn {
    margin-right: 0.25rem;
}

body.aiigix-ui .s_table .table.items thead th {
    background: rgb(248 250 252 / 0.98);
}

/* ── Status badges & labels (modules use these) ────────────────────────────── */

body.aiigix-ui .label {
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.72rem;
    padding: 0.25em 0.65em;
    letter-spacing: 0.02em;
}

body.aiigix-ui .label-default {
    background: rgb(100 116 139 / 0.15);
    color: #475569;
}

body.aiigix-ui .label-primary {
    background: rgb(99 102 241 / 0.15);
    color: var(--aiigix-indigo-dark, #4f46e5);
}

body.aiigix-ui .label-success {
    background: rgb(34 197 94 / 0.15);
    color: #15803d;
}

body.aiigix-ui .label-warning {
    background: rgb(234 179 8 / 0.18);
    color: #a16207;
}

body.aiigix-ui .label-danger {
    background: rgb(239 68 68 / 0.15);
    color: #b91c1c;
}

body.aiigix-ui .label-info {
    background: rgb(8 145 178 / 0.15);
    color: #0e7490;
}

body.aiigix-ui table.dataTable tbody .tags-labels .label-tag {
    border-radius: 999px;
    background: rgb(99 102 241 / 0.12);
    color: var(--aiigix-indigo-dark, #4f46e5);
    border: 1px solid rgb(99 102 241 / 0.2);
}

body.aiigix-ui table.dataTable tbody .tags-labels .label-tag:hover {
    background: rgb(99 102 241 / 0.22);
}

body.aiigix-ui .badge {
    border-radius: 999px;
    font-weight: 600;
}

/* ── Sales detail views (invoice, estimate, proposal, credit note) ───────── */

body.admin.aiigix-ui #invoice-preview,
body.admin.aiigix-ui #estimate-preview,
body.admin.aiigix-ui #proposal-preview,
body.admin.aiigix-ui .invoice-preview,
body.admin.aiigix-ui .estimate-preview,
body.admin.aiigix-ui .proposal-preview {
    border-radius: var(--aiigix-radius, 0.75rem);
}

body.admin.aiigix-ui .invoice-html-preview,
body.admin.aiigix-ui .estimate-html-preview,
body.admin.aiigix-ui .proposal-html-preview {
    background: var(--aiigix-surface, #fff);
    border: 1px solid var(--aiigix-border, #e2e8f0);
    border-radius: var(--aiigix-radius, 0.75rem);
    box-shadow: var(--aiigix-shadow);
    padding: 1.25rem;
}

body.admin.aiigix-ui .invoice .panel_s,
body.admin.aiigix-ui .estimate .panel_s,
body.admin.aiigix-ui .proposal .panel_s,
body.admin.aiigix-ui .credit_note .panel_s {
    border-radius: var(--aiigix-radius, 0.75rem);
    overflow: hidden;
}

body.admin.aiigix-ui .invoice .tab-content .panel_s,
body.admin.aiigix-ui .estimate .tab-content .panel_s {
    margin-top: 0.75rem;
}

body.admin.aiigix-ui .horizontal-scrollable-tabs .nav-tabs-horizontal {
    background: transparent;
    border-bottom: 2px solid var(--aiigix-border, #e2e8f0);
}

body.admin.aiigix-ui .horizontal-scrollable-tabs .nav-tabs-horizontal > li.active > a {
    border-bottom: 2px solid var(--aiigix-indigo, #6366f1);
    color: var(--aiigix-indigo, #6366f1);
    font-weight: 600;
    margin-bottom: -2px;
}

body.admin.aiigix-ui #sales_attach_file .sales-attach-file-preview {
    border-radius: var(--aiigix-radius-sm, 0.5rem);
    border: 1px solid var(--aiigix-border, #e2e8f0);
    overflow: hidden;
}

body.admin.aiigix-ui .proposal-pipeline-modal .panel_s,
body.admin.aiigix-ui .proposal-convert-modal .panel_s {
    border-radius: var(--aiigix-radius, 0.75rem);
}

/* ── Kanban boards (tasks, leads, KB) ─────────────────────────────────────── */

body.admin.aiigix-ui .kan-ban-content {
    background: rgb(241 245 249 / 0.85);
    border-radius: var(--aiigix-radius, 0.75rem);
    padding: 0.5rem;
}

body.admin.aiigix-ui .kan-ban-col {
    vertical-align: top;
}

body.admin.aiigix-ui .kan-ban-col-wrapper .panel_s:first-child {
    background: linear-gradient(135deg, var(--aiigix-indigo, #6366f1) 0%, var(--aiigix-cyan, #0891b2) 100%);
    border: none;
    border-radius: var(--aiigix-radius-sm, 0.5rem);
    color: #fff;
    box-shadow: 0 4px 14px rgb(99 102 241 / 0.3);
}

body.admin.aiigix-ui .kan-ban-col-wrapper .panel_s:first-child .panel-heading,
body.admin.aiigix-ui .kan-ban-col-wrapper .panel_s:first-child .panel-body {
    background: transparent !important;
    border: none !important;
    color: #fff;
}

body.admin.aiigix-ui .kan-ban-col-wrapper .panel_s:first-child .panel-title,
body.admin.aiigix-ui .kan-ban-col-wrapper .panel_s:first-child .bold {
    color: #fff;
}

body.admin.aiigix-ui #kan-ban .panel_s,
body.admin.aiigix-ui .kan-ban-body .panel_s {
    border-radius: var(--aiigix-radius-sm, 0.5rem);
    border: 1px solid var(--aiigix-border, #e2e8f0);
    box-shadow: var(--aiigix-shadow);
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

body.admin.aiigix-ui #kan-ban .panel_s:hover,
body.admin.aiigix-ui .kan-ban-body .panel_s:hover {
    transform: translateY(-1px);
    box-shadow: var(--aiigix-shadow-lg);
}

body.admin.aiigix-ui #kan-ban .panel-body {
    border-top: none;
    border-radius: var(--aiigix-radius-sm, 0.5rem);
}

body.admin.aiigix-ui #kan-ban .panel-body .lead-name,
body.admin.aiigix-ui #kan-ban .panel-body .task-name {
    font-weight: 600;
    color: var(--aiigix-text, #0f172a);
}

body.admin.aiigix-ui .kan-ban-expand-top {
    background: rgb(255 255 255 / 0.92);
    border-radius: var(--aiigix-radius-sm, 0.5rem);
    border: 1px solid var(--aiigix-border, #e2e8f0);
    color: var(--aiigix-indigo, #6366f1);
    font-weight: 600;
}

body.admin.aiigix-ui .ui-state-highlight-kan-ban-kb {
    background: rgb(99 102 241 / 0.12) !important;
    border: 2px dashed var(--aiigix-indigo, #6366f1) !important;
    border-radius: var(--aiigix-radius-sm, 0.5rem);
    min-height: 80px;
}

body.admin.aiigix-ui .kan-ban-tab .kanban-leads-sort a,
body.admin.aiigix-ui .tasks-kanban-search .kanban-sort {
    color: var(--aiigix-indigo, #6366f1);
    font-weight: 500;
}

body.admin.aiigix-ui li.lead-kan-ban.current-user-lead .panel-body {
    border-left: 3px solid var(--aiigix-cyan, #0891b2);
}

/* ── Empty & zero-data states ──────────────────────────────────────────────── */

body.aiigix-ui table.dataTable td.dataTables_empty {
    padding: 2.5rem 1rem !important;
    color: var(--aiigix-text-muted, #64748b);
    font-size: 0.9375rem;
    font-weight: 500;
    background: rgb(248 250 252 / 0.6) !important;
}

body.aiigix-ui .kan-ban-content .kanban-empty {
    padding: 2rem 1rem;
    text-align: center;
}

body.aiigix-ui .kan-ban-content .kanban-empty h4 {
    color: var(--aiigix-text-muted, #64748b);
    font-weight: 500;
    font-size: 0.9375rem;
}

body.aiigix-ui .kan-ban-content .kanban-empty::before {
    content: "—";
    display: block;
    font-size: 1.5rem;
    color: rgb(99 102 241 / 0.35);
    margin-bottom: 0.35rem;
    line-height: 1;
}

body.aiigix-ui .dd-empty {
    background: rgb(248 250 252 / 0.8);
    border: 2px dashed var(--aiigix-border-strong, #cbd5e1);
    border-radius: var(--aiigix-radius-sm, 0.5rem);
    color: var(--aiigix-text-muted, #64748b);
}

body.aiigix-ui .alert-info:not(.alert-dismissible) {
    border-left: 4px solid var(--aiigix-cyan, #0891b2);
}

/* ── Mobile & tablet ───────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    body.admin.aiigix-ui #header {
        box-shadow: 0 2px 12px rgb(15 23 42 / 0.2);
    }

    body.admin.aiigix-ui .sidebar {
        box-shadow: 4px 0 24px rgb(15 23 42 / 0.25);
        z-index: 60;
    }

    body.admin.aiigix-ui.show-sidebar #wrapper::after {
        background-color: rgb(15 23 42 / 0.55);
        backdrop-filter: blur(2px);
    }

    body.admin.aiigix-ui .content {
        padding: 0.85rem;
    }

    body.admin.aiigix-ui ._buttons .btn,
    body.admin.aiigix-ui ._buttons .btn-group {
        margin-bottom: 0.35rem;
    }

    body.admin.aiigix-ui .aiigix-dashboard-hero .panel-body {
        padding: 1rem 1.1rem;
    }

    body.admin.aiigix-ui .aiigix-dashboard-hero h2 {
        font-size: 1.15rem;
    }

    body.admin.aiigix-ui .kan-ban-col {
        width: 280px !important;
    }

    body.admin.aiigix-ui .top_stats_wrapper {
        margin-bottom: 0.5rem;
    }

    body.customers.aiigix-ui .navbar-default .navbar-collapse {
        background: var(--aiigix-bg-shell, #0f172a);
        border-radius: 0 0 var(--aiigix-radius-sm, 0.5rem) var(--aiigix-radius-sm, 0.5rem);
        margin-top: 0.25rem;
        padding: 0.35rem 0;
    }

    body.customers.aiigix-ui .navbar-default .navbar-nav > li > a {
        padding-top: 0.65rem;
        padding-bottom: 0.65rem;
    }

    body.aiigix-ui table.dataTable {
        font-size: 0.8125rem;
    }
}

@media (max-width: 480px) {
    body.admin.aiigix-ui .kan-ban-col {
        width: 260px !important;
    }

    body.aiigix-auth-page .authentication-form-wrapper {
        padding-top: 1.5rem;
    }
}

/* ── Projects, tickets, leads pipeline extras ──────────────────────────────── */

body.admin.aiigix-ui .project-heading {
    color: var(--aiigix-text, #0f172a);
}

body.admin.aiigix-ui .project-overview-panel .panel_s,
body.admin.aiigix-ui .project_activity .panel_s,
body.admin.aiigix-ui .ticket .panel_s {
    border-radius: var(--aiigix-radius, 0.75rem);
}

body.admin.aiigix-ui .tasks-page .kan-ban-content,
body.admin.aiigix-ui .leads-kan-ban .kan-ban-content {
    min-height: 120px;
}

body.admin.aiigix-ui .proposals-pipeline .panel_s .panel-body .single-option-buttons .btn {
    border-radius: var(--aiigix-radius-sm, 0.5rem);
}

body.customers.aiigix-ui:not(.aiigix-auth-page) .panel_s .table {
    margin-bottom: 0;
}

body.customers.aiigix-ui:not(.aiigix-auth-page) .panel_s .table > thead > tr > th {
    background: rgb(248 250 252 / 0.95);
}
