/* Promotions module — extracted from promotions.html */

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            text-rendering: optimizeLegibility;
        }

        html {
            -webkit-text-size-adjust: 100%;
            -ms-text-size-adjust: 100%;
        }

        body {
            font-family: var(--font-family-base);
            background: var(--bg-page);
            color: var(--text-primary);
            min-height: 100vh;
            overflow-x: hidden;
            padding: 0;
        }

        .container.promotions-page {
            width: 100%;
            max-width: none;
            margin: 0;
            padding: 20px 1.75rem 40px;
            min-height: 100%;
            box-sizing: border-box;
            background: var(--bg-page);
            font-family: var(--font-family-base);
            color: var(--text-primary);
        }

        body.has-presentation-bar .card-content-area:has(.promotions-page) {
            background: var(--bg-page);
        }

        /* Tabs: usar chrome compartido (.banchy-module-tabs); reset del subrayado antiguo */
        .promotions-tabs-container.banchy-module-tabs {
            border-bottom: none;
            display: inline-flex;
            width: auto;
            max-width: 100%;
        }

        .promotions-tabs.banchy-module-tabs-inner {
            display: contents;
        }

        .promotions-tab.banchy-module-tab {
            border-bottom: none;
            top: 0;
            font-size: var(--font-size-sm);
            font-weight: var(--font-weight-medium);
        }

        .promotions-tab.banchy-module-tab.active {
            color: var(--text-white);
            border-bottom-color: transparent;
        }

        .promotions-tab-content {
            display: none;
            animation: promotionsFadeIn 0.25s ease;
        }

        .promotions-tab-content.active {
            display: block;
        }

        #promotions-tab-visitador .corp-vis-toolbar {
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            gap: 12px 16px;
            flex-wrap: wrap;
        }

        #promotions-tab-visitador .corp-vis-stage {
            flex: 0 0 240px;
            max-width: 280px;
            min-width: 180px;
        }

        #promotions-tab-visitador .corp-vis-view-switch {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 3px;
            border-radius: 10px;
            background: #f1f5f9;
            border: 1px solid #e2e8f0;
        }

        #promotions-tab-visitador .corp-vis-view-btn {
            border: 0;
            background: transparent;
            color: #475569;
            font: inherit;
            font-size: 13px;
            font-weight: 600;
            padding: 7px 12px;
            border-radius: 8px;
            cursor: pointer;
            line-height: 1.2;
        }

        #promotions-tab-visitador .corp-vis-view-btn.is-active {
            background: #fff;
            color: #0f172a;
            box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
        }

        #promotions-tab-visitador .corp-vis-actions {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            align-items: center;
            gap: 8px;
            margin-left: auto;
        }

        #promotions-tab-visitador .corp-vis-actions .btn-primary,
        #promotions-tab-visitador .corp-vis-actions .btn-secondary {
            height: 32px;
            padding: 0 14px;
            white-space: nowrap;
        }

        .outlook-cal {
            margin: 0 0 16px;
            background: #fff;
            border: 1px solid #d6dbe3;
            border-radius: 8px;
            overflow: hidden;
        }

        .outlook-cal-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 8px 16px;
            padding: 10px 12px;
            border-bottom: 1px solid #e5e7eb;
            background: #f8fafc;
        }

        .outlook-cal-navs {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .outlook-cal-bar h3 {
            margin: 0 0 0 8px;
            font-size: 15px;
            font-weight: 650;
            color: #0f172a;
        }

        .outlook-cal-nav,
        .outlook-cal-today {
            height: 30px;
            border: 1px solid #cbd5e1;
            background: #fff;
            color: #0f172a;
            border-radius: 6px;
            cursor: pointer;
            font-weight: 600;
        }

        .outlook-cal-nav {
            width: 30px;
            font-size: 18px;
            line-height: 1;
        }

        .outlook-cal-today {
            padding: 0 12px;
            font-size: 13px;
        }

        .outlook-cal-grid {
            overflow: auto;
            max-height: 640px;
        }

        .outlook-cal-head,
        .outlook-cal-body {
            display: grid;
            grid-template-columns: 64px repeat(7, minmax(110px, 1fr));
            min-width: 860px;
        }

        .outlook-cal-head {
            position: sticky;
            top: 0;
            z-index: 2;
            background: #fff;
            border-bottom: 1px solid #e5e7eb;
        }

        .outlook-cal-dayhead {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 8px 4px;
            border-left: 1px solid #eef2f6;
            color: #64748b;
            font-size: 12px;
        }

        .outlook-cal-dayhead strong {
            font-size: 18px;
            color: #0f172a;
            font-weight: 650;
        }

        .outlook-cal-dayhead.is-today strong {
            width: 32px;
            height: 32px;
            border-radius: 999px;
            background: #1e3a8a;
            color: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .outlook-cal-hours {
            background: #fff;
        }

        .outlook-cal-hour {
            box-sizing: border-box;
            padding: 2px 6px 0 0;
            text-align: right;
            font-size: 11px;
            color: #64748b;
            border-top: 1px solid transparent;
        }

        .outlook-cal-col {
            position: relative;
            border-left: 1px solid #e5e7eb;
            background: #fff;
        }

        .outlook-cal-col.is-today {
            background: #f8fbff;
        }

        .outlook-cal-line {
            position: absolute;
            left: 0;
            right: 0;
            border-top: 1px solid #eef2f6;
        }

        .outlook-cal-event {
            position: absolute;
            z-index: 1;
            box-sizing: border-box;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
            border: none;
            border-left: 3px solid #1d4ed8;
            border-radius: 4px;
            background: #dbeafe;
            color: #1e3a8a;
            text-align: left;
            font-size: 11px;
            line-height: 16px;
            padding: 2px 6px;
            cursor: pointer;
        }

        .outlook-cal-event.is-done {
            border-left-color: #64748b;
            background: #f1f5f9;
            color: #334155;
        }

        .outlook-cal-event.is-overdue {
            border-left-color: #b91c1c;
            background: #fee2e2;
            color: #991b1b;
        }

        .corp-vis-kpis {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
            margin-top: 0;
        }

        .corp-vis-kpi-card {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            padding: 14px 16px;
        }

        .corp-vis-kpi-card p {
            margin: 0;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: #64748b;
        }

        .corp-vis-kpi-card strong {
            display: block;
            margin-top: 4px;
            font-size: 26px;
            line-height: 1.1;
            color: #0f172a;
        }

        .corp-vis-kpi-card span {
            display: flex;
            align-items: center;
            gap: 4px;
            margin-top: 4px;
            font-size: 12px;
            font-weight: 600;
        }

        .corp-vis-kpi-icon {
            width: 44px;
            height: 44px;
            border-radius: 12px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            flex: 0 0 auto;
        }

        .kpi-blue { color: #1d4ed8; }
        .corp-vis-kpi-icon.kpi-blue { background: #eff6ff; border: 1px solid #dbeafe; }
        .kpi-green { color: #047857; }
        .corp-vis-kpi-icon.kpi-green { background: #ecfdf5; border: 1px solid #d1fae5; }
        .kpi-purple { color: #6d28d9; }
        .corp-vis-kpi-icon.kpi-purple { background: #f5f3ff; border: 1px solid #ede9fe; }
        .kpi-amber { color: #b45309; }
        .corp-vis-kpi-icon.kpi-amber { background: #fffbeb; border: 1px solid #fef3c7; }

        .corp-vis-rutero {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 280px;
            gap: 16px;
            align-items: start;
        }

        .outlook-cal-legend {
            display: flex;
            flex-wrap: wrap;
            gap: 10px 14px;
            font-size: 12px;
            color: #475569;
        }

        .outlook-cal-legend span {
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        .outlook-cal-legend i {
            width: 9px;
            height: 9px;
            border-radius: 999px;
            display: inline-block;
        }

        .outlook-cal-legend .tone-seg { background: #2563eb; }
        .outlook-cal-legend .tone-close { background: #d97706; }
        .outlook-cal-legend .tone-log { background: #059669; }
        .outlook-cal-legend .tone-urgent { background: #dc2626; }

        .outlook-cal-foot {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            padding: 10px 14px;
            border-top: 1px solid #e5e7eb;
            background: #f8fafc;
            color: #64748b;
            font-size: 12px;
        }

        .rutero-head,
        .rutero-row {
            display: grid;
            grid-template-columns: 56px repeat(7, minmax(128px, 1fr));
            min-width: 980px;
        }

        .rutero-head {
            position: sticky;
            top: 0;
            z-index: 2;
            background: #f8fafc;
            border-bottom: 1px solid #e2e8f0;
            text-align: center;
            font-size: 12px;
            font-weight: 650;
            color: #475569;
        }

        .rutero-head > div,
        .rutero-hour,
        .rutero-cell {
            border-left: 1px solid #eef2f6;
            min-width: 0;
        }

        .rutero-head > div:first-child,
        .rutero-hour {
            border-left: none;
            color: #94a3b8;
            font-weight: 500;
        }

        .rutero-day {
            padding: 8px 4px;
        }

        .rutero-day strong {
            display: block;
            font-size: 16px;
            color: #0f172a;
        }

        .rutero-day.is-today strong {
            color: #1e3a8a;
        }

        .rutero-day.is-weekend,
        .rutero-cell.is-weekend {
            background: #f8fafc;
        }

        .rutero-cell.is-today {
            background: #f8fbff;
        }

        .rutero-row {
            border-bottom: 1px solid #f1f5f9;
        }

        .rutero-hour {
            padding: 8px 4px;
            text-align: center;
            font-size: 11px;
            font-variant-numeric: tabular-nums;
            background: #f8fafc;
        }

        .rutero-cell {
            min-height: 78px;
            padding: 4px;
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .rutero-card {
            display: block;
            width: 100%;
            border: none;
            border-left: 4px solid #2563eb;
            border-radius: 6px;
            background: #eff6ff;
            color: #1e3a8a;
            text-align: left;
            padding: 6px 8px;
            cursor: pointer;
            box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
        }

        .rutero-card-top,
        .rutero-card-who,
        .rutero-card-foot {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 6px;
            min-width: 0;
        }

        .rutero-card-top strong {
            font-size: 11px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .rutero-card-top em {
            flex: 0 0 auto;
            font-style: normal;
            font-size: 9px;
            font-weight: 700;
            padding: 1px 4px;
            border-radius: 4px;
            background: rgba(255, 255, 255, 0.7);
        }

        .rutero-card-who,
        .rutero-card-foot {
            margin-top: 3px;
            font-size: 10px;
        }

        .rutero-card-who {
            justify-content: flex-start;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .rutero-card-foot {
            margin-top: 6px;
            padding-top: 4px;
            border-top: 1px solid rgba(30, 58, 138, 0.15);
            font-weight: 650;
        }

        .rutero-card-actions {
            display: inline-flex;
            gap: 6px;
        }

        .rutero-card-actions a,
        .rutero-card-actions button.corp-vis-wa-bank {
            color: inherit;
            background: transparent;
            border: 0;
            padding: 0;
            cursor: pointer;
            font: inherit;
            line-height: 1;
        }

        .rutero-card-actions button.corp-vis-wa-bank {
            color: #15803d;
        }

        .rutero-card.tone-close {
            border-left-color: #d97706;
            background: #fffbeb;
            color: #92400e;
        }

        .rutero-card.tone-log {
            border-left-color: #059669;
            background: #ecfdf5;
            color: #065f46;
        }

        .rutero-card.tone-urgent {
            border-left-color: #dc2626;
            background: #fef2f2;
            color: #991b1b;
        }

        .rutero-card.is-done {
            opacity: 0.72;
        }

        .corp-vis-pending {
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            padding: 14px;
        }

        .corp-vis-pending-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding-bottom: 10px;
            border-bottom: 1px solid #e2e8f0;
        }

        .corp-vis-pending-head h3 {
            margin: 0;
            font-size: 13px;
            color: #0f172a;
        }

        .corp-vis-pending-badge {
            background: #fef3c7;
            color: #92400e;
            border-radius: 999px;
            font-size: 10px;
            font-weight: 700;
            padding: 2px 8px;
        }

        .corp-vis-pending-note,
        .corp-vis-pending-empty {
            margin: 10px 0;
            font-size: 12px;
            color: #64748b;
        }

        .corp-vis-pending-card {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 10px;
            margin-bottom: 8px;
        }

        .corp-vis-pending-top {
            display: flex;
            justify-content: space-between;
            gap: 8px;
        }

        .corp-vis-pending-top h4 {
            margin: 0;
            font-size: 12px;
            color: #0f172a;
        }

        .corp-vis-pending-top p,
        .corp-vis-pending-top span,
        .corp-vis-pending-foot span {
            margin: 2px 0 0;
            font-size: 11px;
            color: #64748b;
        }

        .corp-vis-pending-top span {
            background: #e2e8f0;
            color: #334155;
            border-radius: 4px;
            padding: 1px 6px;
            height: fit-content;
            white-space: nowrap;
        }

        .corp-vis-pending-foot {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            margin-top: 8px;
            padding-top: 8px;
            border-top: 1px solid #e2e8f0;
        }

        .corp-vis-pending-foot button {
            border: none;
            background: transparent;
            color: #1d4ed8;
            font-size: 11px;
            font-weight: 700;
            cursor: pointer;
            padding: 0;
        }

        @media (max-width: 1100px) {
            .corp-vis-kpis,
            .corp-vis-rutero {
                grid-template-columns: 1fr;
            }
        }

        .mass-wa-visitador-banner {
            margin: 0 0 12px;
            padding: 10px 12px;
            border-radius: 10px;
            border: 1px solid #bbf7d0;
            background: #f0fdf4;
            color: #166534;
            font-size: 13px;
            line-height: 1.4;
        }

        .corp-vis-panel-hint {
            margin: 0 0 10px;
            font-size: 13px;
            color: #64748b;
        }

        .corp-vis-kanban-panel[hidden],
        .corp-vis-rutero[hidden] {
            display: none !important;
        }

        .corp-vis-kanban {
            display: flex;
            gap: 12px;
            overflow-x: auto;
            padding-bottom: 8px;
            align-items: stretch;
        }

        .corp-vis-kanban-col {
            flex: 0 0 220px;
            min-height: 320px;
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            display: flex;
            flex-direction: column;
        }

        .corp-vis-kanban-col > header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 10px 12px;
            border-bottom: 1px solid #e2e8f0;
        }

        .corp-vis-kanban-col > header h4 {
            margin: 0;
            font-size: 13px;
            color: #0f172a;
        }

        .corp-vis-kanban-col > header em {
            font-style: normal;
            font-size: 12px;
            font-weight: 700;
            color: #64748b;
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 999px;
            min-width: 22px;
            text-align: center;
            padding: 1px 6px;
        }

        .corp-vis-kanban-col-body {
            padding: 8px;
            display: flex;
            flex-direction: column;
            gap: 8px;
            flex: 1;
            min-height: 120px;
        }

        .corp-vis-kanban-card {
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            padding: 10px 12px;
            cursor: grab;
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .corp-vis-kanban-card:active {
            cursor: grabbing;
        }

        .corp-vis-kanban-card strong {
            font-size: 13px;
            color: #0f172a;
        }

        .corp-vis-kanban-card span {
            font-size: 11px;
            color: #64748b;
        }

        .corp-vis-kanban-empty {
            margin: 8px 4px;
            font-size: 12px;
            color: #94a3b8;
        }

        #corpVisFichaModal .corp-vis-jornada-with-qr {
            align-items: flex-start;
            gap: 16px;
        }

        #corpVisFichaModal .corp-vis-jornada-main {
            flex: 1;
            min-width: 0;
        }

        #corpVisFichaModal .corp-vis-qr-block {
            flex: 0 0 auto;
            text-align: center;
        }

        #corpVisFichaModal .corp-vis-qr img {
            display: block;
            width: 140px;
            height: 140px;
            border-radius: 8px;
            border: 1px solid #e2e8f0;
            background: #fff;
        }

        #corpVisFichaModal .corp-vis-qr-block p {
            margin: 6px 0 0;
            font-size: 11px;
            color: #64748b;
            max-width: 140px;
        }

        #corpVisFichaModal .corp-vis-qr-miss {
            font-size: 11px;
            color: #94a3b8;
        }

        #corpVisFichaModal.modal-backdrop {
            z-index: 12000;
            padding: 16px;
        }

        /* Contacto / agendar deben quedar por encima de la ficha */
        #corpVisContactModal.modal-backdrop,
        #corpVisActivityModal.modal-backdrop {
            z-index: 13050;
            padding: 16px;
        }

        #corpVisFichaModal .corp-vis-ficha {
            max-width: 720px;
            width: 100%;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
            border-radius: 16px;
            overflow: hidden;
            background: #fff;
        }

        #corpVisFichaModal .corp-vis-ficha-head {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 12px;
            padding: 16px 20px;
            border-bottom: 1px solid #e2e8f0;
            background: #f8fafc;
        }

        #corpVisFichaModal .corp-vis-ficha-head h2 {
            margin: 0;
            font-size: 18px;
            font-weight: 700;
            color: #0f172a;
        }

        #corpVisFichaModal .corp-vis-ficha-sub {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 8px;
            margin-top: 6px;
            font-size: 12px;
            color: #64748b;
        }

        #corpVisFichaModal .corp-vis-ficha-badge {
            display: inline-flex;
            align-items: center;
            padding: 2px 8px;
            border-radius: 999px;
            background: #dbeafe;
            color: #1e40af;
            border: 1px solid #bfdbfe;
            font-weight: 600;
        }

        #corpVisFichaModal .corp-vis-ficha-stage-label {
            display: block;
            margin-top: 10px;
            font-size: 11px;
            font-weight: 600;
            color: #64748b;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        #corpVisFichaModal .corp-vis-ficha-stage {
            margin-top: 4px;
            height: 32px;
            min-width: 220px;
            border: 1px solid #cbd5e1;
            border-radius: 8px;
            padding: 0 10px;
            background: #fff;
            color: #0f172a;
        }

        #corpVisFichaModal .corp-vis-ficha-close {
            border: none;
            background: transparent;
            color: #64748b;
            font-size: 24px;
            line-height: 1;
            width: 36px;
            height: 36px;
            border-radius: 999px;
            cursor: pointer;
        }

        #corpVisFichaModal .corp-vis-ficha-close:hover {
            background: #e2e8f0;
            color: #0f172a;
        }

        #corpVisFichaModal .corp-vis-ficha-body {
            padding: 16px 20px 20px;
            overflow-y: auto;
            display: flex;
            flex-direction: column;
            gap: 16px;
        }

        #corpVisFichaModal .corp-vis-kpis {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            gap: 10px;
        }

        #corpVisFichaModal .corp-vis-kpi {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            background: #f8fafc;
            min-width: 0;
        }

        #corpVisFichaModal .corp-vis-kpi i {
            width: 32px;
            height: 32px;
            border-radius: 8px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #e0e7ff;
            color: #1e3a8a;
            flex: 0 0 auto;
        }

        #corpVisFichaModal .corp-vis-kpi span {
            display: block;
            font-size: 11px;
            color: #64748b;
        }

        #corpVisFichaModal .corp-vis-kpi strong {
            display: block;
            font-size: 13px;
            color: #0f172a;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        #corpVisFichaModal .corp-vis-notes {
            background: #fffbeb;
            border: 1px solid #fde68a;
            border-radius: 12px;
            padding: 12px;
        }

        #corpVisFichaModal .corp-vis-notes-label {
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: #92400e;
            margin-bottom: 8px;
        }

        #corpVisFichaModal .corp-vis-notes textarea {
            width: 100%;
            box-sizing: border-box;
            border: 1px solid #fcd34d;
            border-radius: 8px;
            padding: 8px 10px;
            font-size: 13px;
            color: #0f172a;
            background: #fff;
            resize: vertical;
        }

        #corpVisFichaModal .corp-vis-ficha-h {
            margin: 0;
            font-size: 13px;
            font-weight: 700;
            color: #0f172a;
        }

        #corpVisFichaModal .corp-vis-contacts {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
        }

        #corpVisFichaModal .corp-vis-contact {
            display: flex;
            gap: 10px;
            padding: 12px;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            background: #fff;
        }

        #corpVisFichaModal .corp-vis-avatar {
            width: 36px;
            height: 36px;
            border-radius: 999px;
            background: #f1f5f9;
            border: 1px solid #e2e8f0;
            color: #334155;
            font-size: 12px;
            font-weight: 700;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex: 0 0 auto;
        }

        #corpVisFichaModal .corp-vis-contact h4 {
            margin: 0;
            font-size: 13px;
            color: #0f172a;
        }

        #corpVisFichaModal .corp-vis-contact p {
            margin: 2px 0 0;
            font-size: 12px;
            color: #64748b;
        }

        #corpVisFichaModal .corp-vis-contact-foot {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            margin-top: 8px;
            padding-top: 8px;
            border-top: 1px solid #f1f5f9;
        }

        #corpVisFichaModal .corp-vis-chip {
            display: inline-block;
            margin-right: 4px;
            padding: 1px 6px;
            border-radius: 6px;
            background: #f1f5f9;
            color: #334155;
            font-size: 10px;
            font-weight: 600;
        }

        #corpVisFichaModal .corp-vis-chip-main {
            background: #dbeafe;
            color: #1d4ed8;
        }

        #corpVisFichaModal .corp-vis-contact-actions {
            display: flex;
            gap: 4px;
        }

        #corpVisFichaModal .corp-vis-contact-actions a {
            width: 26px;
            height: 26px;
            border-radius: 999px;
            background: #f1f5f9;
            color: #334155;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            text-decoration: none;
        }

        #corpVisFichaModal .corp-vis-timeline {
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            background: #f8fafc;
            padding: 12px 12px 12px 8px;
        }

        #corpVisFichaModal .corp-vis-timeline-item {
            position: relative;
            margin-left: 14px;
            padding: 0 0 12px 14px;
            border-left: 2px solid #e2e8f0;
        }

        #corpVisFichaModal .corp-vis-timeline-item:last-child {
            padding-bottom: 0;
        }

        #corpVisFichaModal .corp-vis-dot {
            position: absolute;
            left: -7px;
            top: 2px;
            width: 12px;
            height: 12px;
            border-radius: 999px;
            background: #94a3b8;
            border: 2px solid #fff;
        }

        #corpVisFichaModal .corp-vis-dot-pending {
            background: #2563eb;
        }

        #corpVisFichaModal .corp-vis-timeline-item strong {
            font-size: 13px;
            color: #0f172a;
        }

        #corpVisFichaModal .corp-vis-timeline-item p {
            margin: 2px 0 0;
            font-size: 12px;
            color: #475569;
        }

        #corpVisFichaModal .corp-vis-jornada {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 12px;
            border-radius: 12px;
            border: 1px solid #bae6fd;
            background: #f0f9ff;
        }

        #corpVisFichaModal .corp-vis-jornada-actions {
            display: flex;
            flex-direction: column;
            gap: 6px;
            flex-shrink: 0;
        }

        #corpVisFichaModal .corp-vis-kpis-edit {
            display: grid !important;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
            align-items: stretch;
        }

        #corpVisFichaModal .corp-vis-kpi.is-edit {
            display: grid;
            grid-template-columns: 32px 1fr;
            grid-template-rows: auto auto;
            column-gap: 10px;
            row-gap: 4px;
            align-items: center;
            cursor: default;
            min-width: 0;
        }

        #corpVisFichaModal .corp-vis-kpi.is-edit > i {
            grid-row: 1 / span 2;
            align-self: center;
        }

        #corpVisFichaModal .corp-vis-kpi.is-edit > span {
            grid-column: 2;
            grid-row: 1;
        }

        #corpVisFichaModal .corp-vis-kpi.is-edit > input {
            grid-column: 2;
            grid-row: 2;
            width: 100%;
            min-width: 0;
            box-sizing: border-box;
            border: 1px solid #cbd5e1;
            border-radius: 8px;
            padding: 7px 9px;
            font-size: 13px;
            font-weight: 650;
            color: #0f172a;
            background: #fff;
        }

        #corpVisFichaModal .corp-vis-kpis-edit > .corp-vis-kpi:not(.is-edit) {
            grid-column: 1 / -1;
        }

        #corpVisFichaModal .corp-vis-ficha-h-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            margin: 14px 0 8px;
        }

        #corpVisFichaModal .corp-vis-ficha-h-row .corp-vis-ficha-h {
            margin: 0;
        }

        #corpVisFichaModal .corp-vis-btn-sm {
            padding: 4px 10px;
            font-size: 12px;
        }

        #corpVisFichaModal .corp-vis-icon-btn {
            width: 26px;
            height: 26px;
            padding: 0;
            border: 0;
            border-radius: 999px;
            background: #f1f5f9;
            color: #334155;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font: inherit;
            line-height: 1;
        }

        #corpVisFichaModal .corp-vis-icon-btn.corp-vis-wa-bank {
            background: #dcfce7;
            color: #15803d;
        }

        #corpVisFichaModal .corp-vis-icon-btn.corp-vis-wa-bank:hover {
            background: #bbf7d0;
        }

        #corpVisFichaModal .corp-vis-act-actions {
            display: flex;
            gap: 6px;
            margin-top: 6px;
        }

        #corpVisFichaModal .corp-vis-dot-done {
            background: #16a34a;
        }

        .corp-vis-check {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 13px;
            color: #334155;
        }

        .corp-vis-pending-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            margin: 6px 0 2px;
        }

        .corp-vis-tag {
            font-size: 10px;
            font-style: normal;
            font-weight: 700;
            padding: 2px 6px;
            border-radius: 999px;
            background: #e2e8f0;
            color: #334155;
        }

        .corp-vis-tag.is-urgent {
            background: #fee2e2;
            color: #b91c1c;
        }

        .corp-vis-tag.is-prio {
            background: #ffedd5;
            color: #c2410c;
        }

        .corp-vis-pending-card.is-overdue {
            border-color: #fecaca;
            background: #fff7f7;
        }

        #corpVisFichaModal .corp-vis-jornada-flash {
            margin: 6px 0 0;
            font-size: 12px;
            font-weight: 650;
            color: #15803d;
        }

        tr.campaign-table-row.corp-vis-from-visitador {
            outline: 2px solid #86efac;
            outline-offset: -2px;
            background: #f0fdf4;
        }

        #corpVisFichaModal .corp-vis-jornada h4 {
            margin: 0;
            font-size: 13px;
            color: #0c4a6e;
        }

        #corpVisFichaModal .corp-vis-jornada p {
            margin: 2px 0 0;
            font-size: 12px;
            color: #0369a1;
        }

        #corpVisFichaModal .corp-vis-ficha-error {
            color: #dc2626;
            font-size: 12px;
        }

        #corpVisFichaModal .corp-vis-ficha-banner {
            margin: 0;
            padding: 10px 12px;
            border-radius: 10px;
            font-size: 13px;
            font-weight: 650;
            border: 1px solid #bbf7d0;
            background: #f0fdf4;
            color: #15803d;
        }

        #corpVisFichaModal .corp-vis-ficha-banner.is-busy {
            border-color: #cbd5e1;
            background: #f8fafc;
            color: #475569;
        }

        #corpVisFichaModal .corp-vis-ficha-banner.is-error {
            border-color: #fecaca;
            background: #fef2f2;
            color: #b91c1c;
        }

        #corpVisFichaModal .corp-vis-ficha-save-status {
            margin: 0;
            max-width: 220px;
            font-size: 12px;
            font-weight: 650;
            line-height: 1.3;
            color: #15803d;
        }

        #corpVisFichaModal .corp-vis-ficha-save-status.is-busy {
            color: #475569;
        }

        #corpVisFichaModal .corp-vis-ficha-save-status.is-error {
            color: #dc2626;
        }

        #corpVisFichaModal .corp-vis-ficha-save-status.is-ok {
            color: #15803d;
        }

        #corpVisFichaModal .corp-vis-ficha-foot {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 12px 20px;
            border-top: 1px solid #e2e8f0;
            background: #f8fafc;
        }

        #corpVisFichaModal .corp-vis-ficha-foot-actions {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
            justify-content: flex-end;
        }

        #corpVisFichaModal .corp-vis-btn {
            border: 1px solid #cbd5e1;
            background: #fff;
            color: #334155;
            border-radius: 10px;
            padding: 8px 12px;
            font-size: 13px;
            font-weight: 600;
            cursor: pointer;
        }

        #corpVisFichaModal .corp-vis-btn-primary {
            background: #1e3a8a;
            border-color: #1e3a8a;
            color: #fff;
        }

        @media (max-width: 720px) {
            #corpVisFichaModal .corp-vis-kpis,
            #corpVisFichaModal .corp-vis-contacts {
                grid-template-columns: 1fr;
            }
            #corpVisFichaModal .corp-vis-ficha-foot,
            #corpVisFichaModal .corp-vis-jornada {
                flex-direction: column;
                align-items: stretch;
            }
        }

        /* Sub-vistas dentro de Jornadas de captación */
        .jornadas-subtabs-container {
            border-bottom: 1px solid #e8e8e8;
            margin-bottom: 18px;
        }
        .jornadas-subtabs {
            display: flex;
            gap: 4px;
            flex-wrap: wrap;
        }
        .jornadas-subtab {
            background: #f4f4f5;
            border: 1px solid #e4e4e7;
            border-bottom: none;
            border-radius: 8px 8px 0 0;
            padding: 8px 14px;
            font-size: 12px;
            font-weight: 600;
            color: #52525b;
            cursor: pointer;
            transition: background 0.15s ease, color 0.15s ease;
        }
        .jornadas-subtab:hover {
            background: #e4e4e7;
            color: #18181b;
        }
        .jornadas-subtab.active {
            background: #fff;
            color: #18181b;
            border-color: #d4d4d8;
            position: relative;
            bottom: -1px;
            padding-bottom: 9px;
        }
        .jornadas-subview {
            display: none;
            animation: promotionsFadeIn 0.2s ease;
        }
        .jornadas-subview.active {
            display: block;
        }

        .jornadas-view-toggle {
            display: inline-flex;
            border: 1px solid #d4d4d8;
            border-radius: 8px;
            overflow: hidden;
            background: #fff;
        }
        .jornadas-view-btn {
            border: none;
            background: #fff;
            color: #52525b;
            font-size: 12px;
            font-weight: 600;
            padding: 7px 14px;
            cursor: pointer;
        }
        .jornadas-view-btn + .jornadas-view-btn {
            border-left: 1px solid #d4d4d8;
        }
        .jornadas-view-btn:hover {
            background: #f4f4f5;
        }
        .jornadas-view-btn.active {
            background: #0f766e;
            color: #fff;
        }
        .jornadas-calendar-panel {
            background: #fff;
            border: 1px solid #e4e4e7;
            border-radius: 10px;
            overflow: hidden;
        }
        .jcal-toolbar {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 12px 16px;
            border-bottom: 1px solid #e4e4e7;
            background: #fafafa;
        }
        .jcal-toolbar h3 {
            margin: 0;
            font-size: 18px;
            font-weight: 650;
            color: #18181b;
            min-width: 180px;
        }
        .jcal-nav {
            width: 32px;
            height: 32px;
            border: 1px solid #d4d4d8;
            border-radius: 6px;
            background: #fff;
            cursor: pointer;
            font-size: 18px;
            line-height: 1;
            color: #3f3f46;
        }
        .jcal-nav:hover {
            background: #f4f4f5;
        }
        .jcal-today-btn {
            margin-left: auto;
            border: 1px solid #d4d4d8;
            border-radius: 6px;
            background: #fff;
            padding: 6px 12px;
            font-size: 12px;
            font-weight: 600;
            cursor: pointer;
            color: #3f3f46;
        }
        .jcal-grid {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
        }
        .jcal-dow {
            padding: 8px 6px;
            font-size: 11px;
            font-weight: 700;
            color: #71717a;
            text-align: center;
            border-bottom: 1px solid #e4e4e7;
            background: #fff;
        }
        .jcal-dow.sun {
            color: #b91c1c;
        }
        .jcal-day {
            min-height: 108px;
            border-right: 1px solid #eee;
            border-bottom: 1px solid #eee;
            padding: 6px;
            background: #fff;
            vertical-align: top;
        }
        .jcal-day.out {
            background: #fafafa;
            color: #a1a1aa;
        }
        .jcal-day.sun {
            background: #fafafa;
        }
        .jcal-day.today {
            box-shadow: inset 0 0 0 2px #2563eb;
        }
        .jcal-day-num {
            font-size: 13px;
            font-weight: 650;
            margin-bottom: 4px;
        }
        .jcal-chip {
            display: block;
            width: 100%;
            text-align: left;
            border: none;
            border-radius: 4px;
            padding: 3px 6px;
            margin: 0 0 3px 0;
            font-size: 11px;
            line-height: 1.25;
            color: #fff;
            cursor: pointer;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .jcal-chip.cancelled {
            background: #a1a1aa !important;
            text-decoration: line-through;
            opacity: 0.85;
        }
        .jcal-empty-hint {
            display: block;
            width: 100%;
            border: none;
            background: transparent;
            color: #a1a1aa;
            font-size: 11px;
            padding: 8px 0 0;
            cursor: pointer;
            text-align: left;
        }
        .jcal-empty-hint:hover {
            color: #0f766e;
        }
        .jornadas-calendar-panel[hidden],
        #jornadasListPanel[hidden] {
            display: none !important;
        }
        .jcal-day.in-month {
            cursor: pointer;
        }

        #campaignPlanTable thead th.campaign-plan-th-sortable {
            cursor: pointer;
            user-select: none;
            white-space: nowrap;
        }
        #campaignPlanTable thead th.campaign-plan-th-sortable:hover {
            background: rgba(0, 0, 0, 0.04);
        }
        #campaignPlanTable thead th.campaign-plan-th-sortable .campaign-plan-sort-ind {
            font-size: 11px;
            color: #64748b;
            font-weight: 700;
        }

        @keyframes promotionsFadeIn {
            from { opacity: 0; transform: translateY(6px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .promotions-redes-tools {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            gap: 16px;
            margin-top: 16px;
        }

        .promotions-whatsapp-card {
            cursor: pointer;
            border: 1px solid #e8ecf1;
            border-radius: 16px;
            padding: 22px 20px;
            transition: border-color 0.15s ease, box-shadow 0.15s ease;
            background: #fff;
            text-align: center;
            box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
        }

        .promotions-whatsapp-card:hover {
            border-color: #86efac;
            box-shadow: 0 8px 24px -8px rgba(34, 197, 94, 0.2);
        }
        .promotions-chatbot-card {
            border-color: #ddd6fe;
        }
        .promotions-chatbot-card:hover {
            border-color: #c4b5fd;
            box-shadow: 0 8px 24px -8px rgba(124, 58, 237, 0.22);
        }
        .chatbot-layout {
            display: grid;
            grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
            gap: 16px;
            align-items: stretch;
        }
        @media (max-width: 900px) {
            .chatbot-layout { grid-template-columns: 1fr; }
        }
        .chatbot-sim {
            display: flex;
            flex-direction: column;
            min-height: 420px;
            background: #0f172a;
            border-radius: 14px;
            overflow: hidden;
            color: #e2e8f0;
        }
        .chatbot-sim-head {
            padding: 12px 14px;
            background: #1e293b;
            font-size: 13px;
            font-weight: 600;
        }
        .chatbot-sim-log {
            flex: 1;
            overflow-y: auto;
            padding: 12px;
            display: flex;
            flex-direction: column;
            gap: 8px;
            font-size: 13px;
            line-height: 1.45;
        }
        .chatbot-bubble {
            max-width: 88%;
            padding: 8px 11px;
            border-radius: 12px;
            white-space: pre-wrap;
            word-break: break-word;
        }
        .chatbot-bubble--bot { background: #334155; align-self: flex-start; }
        .chatbot-bubble--user { background: #5b21b6; align-self: flex-end; }
        .chatbot-bubble img {
            max-width: 100%;
            border-radius: 8px;
            display: block;
            margin-bottom: 6px;
        }
        .chatbot-intent-block {
            margin-bottom: 10px;
            padding-bottom: 8px;
            border-bottom: 1px solid #e2e8f0;
        }
        .mass-wa-chatbot-reminder-banner {
            margin: 0 0 12px 0;
            padding: 10px 12px;
            background: #ecfdf5;
            border: 1px solid #86efac;
            border-radius: 10px;
            color: #166534;
            font-size: 13px;
            line-height: 1.45;
        }
        .chatbot-sim-chips {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            padding: 0 12px 8px;
            background: #0f172a;
        }
        .chatbot-sim-chip {
            border: 1px solid #64748b;
            background: #1e293b;
            color: #e2e8f0;
            border-radius: 999px;
            padding: 6px 10px;
            font-size: 12px;
            cursor: pointer;
            line-height: 1.2;
        }
        .chatbot-sim-chip:hover { background: #334155; }
        .chatbot-sim-input {
            display: flex;
            gap: 8px;
            padding: 10px;
            background: #1e293b;
        }
        .chatbot-sim-input input {
            flex: 1;
            border: 1px solid #475569;
            border-radius: 8px;
            background: #0f172a;
            color: #f8fafc;
            padding: 8px 10px;
            font-size: 13px;
        }
        .chatbot-intent-row {
            display: grid;
            grid-template-columns: 1fr 1.2fr 1.6fr auto;
            gap: 6px;
            margin-bottom: 6px;
            align-items: start;
        }
        @media (max-width: 700px) {
            .chatbot-intent-row { grid-template-columns: 1fr; }
        }
        .chatbot-intent-row input, .chatbot-intent-row textarea, .chatbot-field textarea, .chatbot-field input[type="text"] {
            width: 100%;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            padding: 6px 8px;
            font-size: 12px;
            font-family: inherit;
        }
        .chatbot-field { margin-bottom: 10px; }
        .chatbot-field label { display: block; font-size: 12px; font-weight: 600; color: #475569; margin-bottom: 4px; }

        .whatsapp-preflight-banner {
            margin-top: 12px;
            padding: 10px 14px;
            border-radius: 10px;
            font-size: 13px;
            line-height: 1.45;
            border: 1px solid #e2e8f0;
            background: #f8fafc;
            color: #334155;
        }
        .whatsapp-preflight-banner--ok {
            border-color: #86efac;
            background: #f0fdf4;
            color: #14532d;
        }
        .whatsapp-preflight-banner--err {
            border-color: #fecaca;
            background: #fef2f2;
            color: #991b1b;
        }
        .whatsapp-preflight-banner--warn {
            border-color: #fde68a;
            background: #fffbeb;
            color: #92400e;
        }

        /* WhatsApp masivo: modal ancho, layout 2 columnas, estilo minimal */
        #massWhatsAppModal.modal-backdrop {
            align-items: flex-start;
            justify-content: center;
            padding: 15vh 16px 32px;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            box-sizing: border-box;
        }

        #massWhatsAppModal .mass-wa-dialog {
            display: flex;
            flex-direction: column;
            width: min(1100px, calc(100vw - 28px));
            max-width: none;
            max-height: min(85vh, calc(100dvh - 15vh - 48px));
            overflow: hidden;
            margin: 0 auto;
            border-radius: 16px;
            border: 1px solid rgba(15, 23, 42, 0.06);
            background: #fff;
            box-shadow:
                0 0 0 1px rgba(255, 255, 255, 0.8) inset,
                0 24px 48px -12px rgba(15, 23, 42, 0.2);
        }

        #massWhatsAppModal .mass-wa-head {
            flex-shrink: 0;
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 16px;
            padding: 1.1rem 1.35rem 1rem;
            border-bottom: 1px solid #f1f5f9;
            background: #fafafa;
        }

        #massWhatsAppModal .mass-wa-head-actions {
            display: flex;
            align-items: center;
            gap: 4px;
            flex-shrink: 0;
        }

        #massWhatsAppModal .mass-wa-minimize {
            background: none;
            border: none;
            cursor: pointer;
            color: #64748b;
            width: 32px;
            height: 32px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
        }

        #massWhatsAppModal .mass-wa-minimize:hover {
            color: #0f172a;
            background: #e2e8f0;
        }

        /* Debe vivir en document.body (ver ensureMassWhatsAppDockOnBody): si queda dentro del card, overflow/transform lo ocultan al cambiar de pestaña. */
        #massWhatsAppDock {
            display: none;
            position: fixed;
            right: 16px;
            bottom: 16px;
            z-index: 12050;
            width: min(400px, calc(100vw - 24px));
            background: #fff;
            border: 2px solid #34d399;
            border-radius: 14px;
            box-shadow: 0 18px 48px -12px rgba(15, 23, 42, 0.45);
            overflow: hidden;
            font-family: inherit;
        }

        #massWhatsAppDock.is-visible { display: block; }
        #massWhatsAppDock.is-running { border-color: #34d399; animation: massWaDockPulse 1.8s ease-in-out infinite; }
        #massWhatsAppDock.is-done { border-color: #86efac; animation: none; }
        #massWhatsAppDock.is-error { border-color: #fecaca; animation: none; }
        #massWhatsAppDock.is-idle { border-color: #cbd5e1; animation: none; }

        @keyframes massWaDockPulse {
            0%, 100% { box-shadow: 0 18px 48px -12px rgba(5, 150, 105, 0.35); }
            50% { box-shadow: 0 18px 52px -8px rgba(5, 150, 105, 0.55); }
        }

        #massWhatsAppMiniStrip {
            display: none;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
            margin: 0 0 14px 0;
            padding: 10px 14px;
            border-radius: 10px;
            border: 1px solid #86efac;
            background: linear-gradient(90deg, #ecfdf5, #f0fdf4);
            color: #14532d;
            font-size: 13px;
            line-height: 1.4;
            box-shadow: 0 4px 14px -6px rgba(5, 150, 105, 0.35);
        }

        #massWhatsAppMiniStrip.is-visible { display: flex; }
        #massWhatsAppMiniStrip.is-error {
            border-color: #fecaca;
            background: linear-gradient(90deg, #fef2f2, #fff1f2);
            color: #7f1d1d;
        }
        #massWhatsAppMiniStrip.is-done {
            border-color: #86efac;
            background: linear-gradient(90deg, #f0fdf4, #ecfdf5);
            color: #14532d;
        }

        #massWhatsAppMiniStrip .mass-wa-strip-icon { font-size: 18px; flex: 0 0 auto; }
        #massWhatsAppMiniStrip .mass-wa-strip-text { flex: 1 1 180px; min-width: 0; }
        #massWhatsAppMiniStrip .mass-wa-strip-text strong { display: block; font-size: 13px; }
        #massWhatsAppMiniStrip .mass-wa-strip-text span { font-size: 12px; opacity: 0.92; }
        #massWhatsAppMiniStrip .mass-wa-strip-actions { display: flex; flex-wrap: wrap; gap: 6px; }
        #massWhatsAppMiniStrip .mass-wa-strip-btn {
            border: 1px solid #86efac;
            background: #fff;
            color: #166534;
            font-size: 12px;
            font-weight: 600;
            border-radius: 8px;
            padding: 6px 10px;
            cursor: pointer;
        }
        #massWhatsAppMiniStrip .mass-wa-strip-btn:hover { background: #ecfdf5; }
        #massWhatsAppMiniStrip .mass-wa-strip-btn--muted {
            border-color: #e2e8f0;
            color: #475569;
        }

        #massWhatsAppDock .mass-wa-dock-head {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 12px;
            background: linear-gradient(135deg, #059669, #047857);
            color: #fff;
            cursor: pointer;
        }

        #massWhatsAppDock.is-error .mass-wa-dock-head {
            background: linear-gradient(135deg, #dc2626, #b91c1c);
        }

        #massWhatsAppDock.is-idle .mass-wa-dock-head {
            background: linear-gradient(135deg, #475569, #334155);
        }

        #massWhatsAppDock.is-idle .mass-wa-dock-body { background: #f8fafc; }

        #massWhatsAppDock.is-done .mass-wa-dock-head {
            background: linear-gradient(135deg, #16a34a, #15803d);
        }

        #massWhatsAppDock .mass-wa-dock-title {
            flex: 1;
            font-size: 13px;
            font-weight: 700;
            line-height: 1.25;
        }

        #massWhatsAppDock .mass-wa-dock-restore,
        #massWhatsAppDock .mass-wa-dock-close {
            background: rgba(255,255,255,0.16);
            border: none;
            color: #fff;
            width: 28px;
            height: 28px;
            border-radius: 8px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        #massWhatsAppDock .mass-wa-dock-restore:hover,
        #massWhatsAppDock .mass-wa-dock-close:hover {
            background: rgba(255,255,255,0.28);
        }

        #massWhatsAppDock .mass-wa-dock-body {
            padding: 10px 12px 12px;
            background: #f0fdf4;
        }

        #massWhatsAppDock.is-error .mass-wa-dock-body { background: #fef2f2; }
        #massWhatsAppDock.is-done .mass-wa-dock-body { background: #f0fdf4; }

        #massWhatsAppDock .mass-wa-dock-line {
            font-size: 12px;
            color: #334155;
            line-height: 1.45;
            margin: 0 0 8px 0;
        }

        #massWhatsAppDock .mass-wa-dock-bar {
            height: 7px;
            background: #dcfce7;
            border-radius: 999px;
            overflow: hidden;
            margin-bottom: 10px;
        }

        #massWhatsAppDock .mass-wa-dock-bar > span {
            display: block;
            height: 100%;
            width: 0;
            background: linear-gradient(90deg, #34d399, #059669);
            transition: width 0.35s ease;
        }

        #massWhatsAppDock .mass-wa-dock-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }

        #massWhatsAppDock .mass-wa-dock-btn {
            border: 1px solid #86efac;
            background: #fff;
            color: #166534;
            font-size: 12px;
            font-weight: 600;
            border-radius: 8px;
            padding: 6px 10px;
            cursor: pointer;
        }

        #massWhatsAppDock .mass-wa-dock-btn:hover { background: #ecfdf5; }

        #massWhatsAppDock .mass-wa-dock-btn--muted {
            border-color: #e2e8f0;
            color: #475569;
        }

        #massWhatsAppModal .mass-wa-head-title {
            margin: 0;
            font-size: 1.125rem;
            font-weight: 600;
            letter-spacing: -0.02em;
            color: #0f172a;
        }

        #massWhatsAppModal .mass-wa-dialog .modal-body.mass-wa-body {
            flex: 1 1 auto;
            min-height: 0;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            padding: 1.15rem 1.35rem 0.85rem;
        }

        #massWhatsAppModal .mass-wa-body-scroll {
            flex: 1 1 auto;
            min-height: 0;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 0.35rem;
        }

        #massWhatsAppModal .mass-wa-main-layout {
            display: grid;
            grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr);
            gap: 1rem 1.25rem;
            align-items: stretch;
        }

        @media (max-width: 920px) {
            #massWhatsAppModal .mass-wa-main-layout {
                grid-template-columns: 1fr;
            }
        }

        #massWhatsAppModal .mass-wa-panel {
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            padding: 1rem 1.15rem 1.05rem;
        }

        #massWhatsAppModal .mass-wa-panel--message {
            background: #fff;
            border-color: #e8ecf1;
        }

        #massWhatsAppModal .mass-wa-filter-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.65rem 0.85rem;
            align-items: end;
        }

        @media (max-width: 520px) {
            #massWhatsAppModal .mass-wa-filter-grid {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 600px) {
            #massWhatsAppModal #massWhatsAppPlaceholdersHelp .mass-wa-placeholders-help__full { display: none !important; }
            #massWhatsAppModal #massWhatsAppPlaceholdersHelp .mass-wa-placeholders-help__short { display: inline !important; }
        }

        #massWhatsAppModal .mass-wa-filter-grid .mass-wa-field--full {
            grid-column: 1 / -1;
        }

        #massWhatsAppModal .mass-wa-panel .mass-wa-check {
            margin-top: 0.85rem;
            padding-top: 0.85rem;
            border-top: 1px dashed #cbd5e1;
        }

        #massWhatsAppModal .mass-wa-kicker {
            display: block;
            font-size: 10px;
            font-weight: 600;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #94a3b8;
            margin: 0 0 0.65rem 0;
        }

        #massWhatsAppModal .mass-wa-field {
            margin-bottom: 0;
        }

        #massWhatsAppModal .mass-wa-filter-grid .mass-wa-field {
            margin-bottom: 0;
        }

        #massWhatsAppModal .mass-wa-panel--message .mass-wa-field + .mass-wa-field {
            margin-top: 0.75rem;
        }

        #massWhatsAppModal .mass-wa-field-label {
            display: block;
            font-size: 11px;
            font-weight: 500;
            color: #64748b;
            margin-bottom: 4px;
            letter-spacing: 0.01em;
        }

        #massWhatsAppModal .mass-wa-input,
        #massWhatsAppModal .mass-wa-select,
        #massWhatsAppModal .mass-wa-textarea {
            width: 100%;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            padding: 9px 11px;
            font-size: 13px;
            color: #0f172a;
            background: #fff;
            transition: border-color 0.15s ease, box-shadow 0.15s ease;
        }

        #massWhatsAppModal .mass-wa-input:focus,
        #massWhatsAppModal .mass-wa-select:focus,
        #massWhatsAppModal .mass-wa-textarea:focus {
            outline: none;
            border-color: #86efac;
            box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.12);
        }

        #massWhatsAppModal .mass-wa-textarea {
            resize: vertical;
            min-height: 200px;
            line-height: 1.5;
        }

        #massWhatsAppModal .mass-wa-check {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-top: 4px;
            padding-top: 10px;
            border-top: 1px solid #f1f5f9;
            font-size: 12px;
            font-weight: 500;
            color: #475569;
            cursor: pointer;
        }

        #massWhatsAppModal .mass-wa-check input {
            width: 15px;
            height: 15px;
            accent-color: #22c55e;
        }

        #massWhatsAppModal .mass-wa-toolbar {
            flex: 0 0 auto;
            display: flex;
            flex-direction: column;
            gap: 12px;
            margin: 0.65rem 0 0;
            padding: 0.85rem 1.1rem 1rem;
            background: linear-gradient(180deg, #fafbfc 0%, #f1f5f9 100%);
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            box-shadow: 0 -8px 20px -16px rgba(15, 23, 42, 0.35);
        }

        #massWhatsAppModal .mass-wa-toolbar__grid {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(200px, 240px);
            gap: 16px 20px;
            align-items: start;
        }

        @media (max-width: 720px) {
            #massWhatsAppModal .mass-wa-toolbar__grid {
                grid-template-columns: 1fr;
            }
        }

        #massWhatsAppModal .mass-wa-toolbar__kicker {
            font-size: 10px;
            font-weight: 600;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #94a3b8;
            margin: 0;
        }

        #massWhatsAppModal .mass-wa-toolbar__test {
            display: flex;
            flex-direction: column;
            gap: 8px;
            min-width: 0;
        }

        #massWhatsAppModal .mass-wa-toolbar__test-row {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }

        #massWhatsAppModal .mass-wa-toolbar__test-row .mass-wa-input {
            flex: 1 1 160px;
            min-width: 140px;
        }

        #massWhatsAppModal .mass-wa-toolbar__test-row .mass-wa-btn {
            flex: 0 0 auto;
        }

        #massWhatsAppModal .mass-wa-toolbar__actions {
            display: flex;
            flex-direction: column;
            align-items: stretch;
            gap: 8px;
        }

        #massWhatsAppModal .mass-wa-toolbar__actions .mass-wa-btn {
            width: 100%;
            border-radius: 10px;
            padding: 11px 14px;
            justify-content: center;
        }

        #massWhatsAppModal .mass-wa-toolbar__actions-hint {
            font-size: 10px;
            color: #94a3b8;
            line-height: 1.35;
            margin: 0;
            text-align: center;
        }

        #massWhatsAppModal .mass-wa-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            padding: 9px 16px;
            font-size: 13px;
            font-weight: 600;
            border-radius: 999px;
            border: none;
            cursor: pointer;
            transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
        }

        #massWhatsAppModal .mass-wa-btn:active {
            transform: scale(0.98);
        }

        #massWhatsAppModal .mass-wa-btn--ghost {
            background: #fff;
            color: #334155;
            border: 1px solid #e2e8f0;
        }

        #massWhatsAppModal .mass-wa-btn--ghost:hover {
            background: #f8fafc;
            border-color: #cbd5e1;
        }

        #massWhatsAppModal .mass-wa-btn--muted {
            background: #f1f5f9;
            color: #475569;
            border: 1px solid #e2e8f0;
        }

        #massWhatsAppModal .mass-wa-btn--muted:hover {
            background: #e2e8f0;
        }

        #massWhatsAppModal .mass-wa-btn--primary {
            background: #25d366;
            color: #fff;
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
        }

        #massWhatsAppModal .mass-wa-btn--primary:hover {
            background: #1eb959;
        }

        #massWhatsAppModal .mass-wa-btn--accent {
            background: #ecfdf5;
            color: #166534;
            border: 1px solid #bbf7d0;
        }

        #massWhatsAppModal .mass-wa-btn--accent:hover {
            background: #d1fae5;
        }

        #massWhatsAppModal .mass-wa-btn--auto {
            background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
            color: #fff;
            border: none;
        }

        #massWhatsAppModal .mass-wa-btn--auto:hover {
            filter: brightness(1.06);
        }

        #massWhatsAppModal .mass-wa-btn--auto:disabled {
            opacity: 0.55;
            cursor: not-allowed;
        }

        #massWhatsAppModal #massWhatsAppTestResult {
            display: block;
            width: 100%;
            font-size: 12px;
            margin-top: 8px;
            line-height: 1.45;
            min-height: 0;
        }

        #massWhatsAppModal #massWhatsAppTestResult:empty {
            display: none;
            margin-top: 0;
        }

        #massWhatsAppModal .mass-wa-preview-box,
        #massWhatsAppModal .mass-wa-result-box {
            margin-top: 12px;
            padding: 12px 14px;
            background: #f8fafc;
            border: 1px solid #e8ecf1;
            border-radius: 12px;
        }

        #massWhatsAppModal .mass-wa-preview-box {
            max-height: min(420px, 42vh);
            overflow-y: auto;
        }

        #massWhatsAppModal .mass-wa-spacer {
            flex: 1 1 40px;
            min-width: 8px;
        }

        /* ── Reporte envíos WhatsApp (dashboard) ── */
        #massWhatsAppSendReportModal .mass-wa-dialog {
            max-width: 1140px;
            width: 96vw;
            max-height: 92vh;
            display: flex;
            flex-direction: column;
            border-radius: 16px;
            overflow: hidden;
            box-shadow: 0 24px 48px rgba(15, 23, 42, 0.18);
        }
        #massWhatsAppSendReportModal .mass-wa-head {
            background: linear-gradient(135deg, #0f766e 0%, #059669 55%, #10b981 100%);
            color: #fff;
            padding: 18px 22px;
            border-bottom: none;
            flex-shrink: 0;
        }
        #massWhatsAppSendReportModal .mass-wa-head-title {
            font-size: 18px;
            font-weight: 700;
            letter-spacing: -0.02em;
            margin: 0;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        #massWhatsAppSendReportModal .mass-wa-head-title i { opacity: 0.92; }
        #massWhatsAppSendReportModal .mass-wa-head-sub {
            margin: 6px 0 0;
            font-size: 12px;
            color: rgba(255,255,255,0.82);
            font-weight: 400;
        }
        #massWhatsAppSendReportModal .mass-wa-head-sub code {
            background: rgba(255,255,255,0.15);
            padding: 1px 6px;
            border-radius: 4px;
            font-size: 11px;
        }
        #massWhatsAppSendReportModal .modal-close {
            color: #fff;
            opacity: 0.85;
        }
        #massWhatsAppSendReportModal .modal-close:hover { opacity: 1; }
        #massWhatsAppSendReportModal .modal-body {
            flex: 1;
            overflow-y: auto;
            padding: 18px 22px 22px;
            background: #f8fafc;
        }
        #massWhatsAppSendReportModal .mass-wa-report-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            align-items: flex-end;
            justify-content: space-between;
            margin-bottom: 14px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-presets {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-preset {
            border: 1px solid #cbd5e1;
            background: #fff;
            color: #475569;
            font-size: 12px;
            font-weight: 500;
            padding: 6px 12px;
            border-radius: 999px;
            cursor: pointer;
            transition: all 0.15s ease;
        }
        #massWhatsAppSendReportModal .mass-wa-report-preset:hover {
            border-color: #059669;
            color: #047857;
            background: #ecfdf5;
        }
        #massWhatsAppSendReportModal .mass-wa-report-preset.is-active {
            background: #059669;
            border-color: #059669;
            color: #fff;
        }
        #massWhatsAppSendReportModal .mass-wa-report-meta {
            font-size: 11px;
            color: #64748b;
            text-align: right;
            min-width: 140px;
        }
        #massWhatsAppSendReportModal .mass-wa-filter-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 10px;
            align-items: end;
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            padding: 14px;
            margin-bottom: 16px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-actions {
            grid-column: 1 / -1;
            display: flex;
            flex-wrap: nowrap;
            gap: 8px;
            align-items: center;
            justify-content: flex-start;
            padding-top: 2px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-actions .mass-wa-btn {
            white-space: nowrap;
            flex-shrink: 0;
        }
        @media (max-width: 900px) {
            #massWhatsAppSendReportModal .mass-wa-filter-grid {
                grid-template-columns: 1fr 1fr;
            }
            #massWhatsAppSendReportModal .mass-wa-report-actions {
                flex-wrap: wrap;
            }
        }
        #massWhatsAppSendReportModal .mass-wa-field-label {
            display: block;
            font-size: 11px;
            font-weight: 600;
            color: #64748b;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            margin-bottom: 4px;
        }
        #massWhatsAppSendReportModal .mass-wa-input {
            width: 100%;
            padding: 8px 10px;
            border: 1px solid #cbd5e1;
            border-radius: 8px;
            font-size: 13px;
            background: #fff;
        }
        #massWhatsAppSendReportModal .mass-wa-input:focus {
            outline: none;
            border-color: #059669;
            box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.15);
        }
        #massWhatsAppSendReportModal .mass-wa-btn {
            border: none;
            border-radius: 8px;
            padding: 9px 14px;
            font-size: 13px;
            font-weight: 600;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            transition: background 0.15s, transform 0.1s;
        }
        #massWhatsAppSendReportModal .mass-wa-btn:active { transform: scale(0.98); }
        #massWhatsAppSendReportModal .mass-wa-btn--primary {
            background: #059669;
            color: #fff;
        }
        #massWhatsAppSendReportModal .mass-wa-btn--primary:hover { background: #047857; }
        #massWhatsAppSendReportModal .mass-wa-btn--ghost {
            background: #fff;
            color: #334155;
            border: 1px solid #cbd5e1;
        }
        #massWhatsAppSendReportModal .mass-wa-btn--ghost:hover { background: #f1f5f9; }
        #massWhatsAppSendReportModal .mass-wa-btn--muted {
            background: #f1f5f9;
            color: #475569;
            border: 1px solid #e2e8f0;
        }
        #massWhatsAppSendReportModal .mass-wa-btn--muted:disabled {
            opacity: 0.45;
            cursor: not-allowed;
        }
        #massWhatsAppSendReportModal .mass-wa-report-kpis {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
            margin-bottom: 12px;
        }
        @media (max-width: 1000px) {
            #massWhatsAppSendReportModal .mass-wa-report-kpis {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        #massWhatsAppSendReportModal .mass-wa-kpi__sub .mass-wa-failed-link {
            background: none;
            border: none;
            padding: 0;
            margin: 0;
            font: inherit;
            color: #dc2626;
            text-decoration: underline;
            cursor: pointer;
        }
        #massWhatsAppSendReportModal .mass-wa-kpi__sub .mass-wa-failed-link:hover {
            color: #991b1b;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip__failed-link {
            display: inline-block;
            margin-top: 10px;
            font-size: 12px;
            font-weight: 600;
            color: #dc2626;
            background: none;
            border: none;
            padding: 0;
            cursor: pointer;
            text-decoration: underline;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip__failed-link:hover {
            color: #991b1b;
        }
        #massWaFailedDeliveryModal.modal-backdrop {
            z-index: 1055;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-dialog {
            max-width: min(980px, 96vw);
            width: 100%;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 10px 12px;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 12px;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-toolbar__intro {
            flex: 1 1 220px;
            margin: 0;
            font-size: 12px;
            color: #64748b;
            line-height: 1.45;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-toolbar__actions {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            align-items: center;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-search {
            min-width: 200px;
            flex: 1 1 200px;
            max-width: 280px;
            padding: 7px 10px 7px 32px;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            font-size: 13px;
            background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.242 1.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z'/%3E%3C/svg%3E") no-repeat 10px center;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-search:focus {
            outline: none;
            border-color: #94a3b8;
            box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.25);
        }
        #massWaFailedDeliveryModal .mass-wa-failed-code-filter {
            padding: 7px 10px;
            border: 1px solid #e2e8f0;
            border-radius: 8px;
            font-size: 12px;
            background: #fff;
            color: #334155;
            min-width: 140px;
        }
        #massWaFailedDeliveryModal .mass-wa-btn--excel-failed {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 8px 14px;
            font-size: 12px;
            font-weight: 600;
            color: #166534;
            background: #ecfdf5;
            border: 1px solid #86efac;
            border-radius: 8px;
            cursor: pointer;
            transition: background 0.15s, border-color 0.15s;
        }
        #massWaFailedDeliveryModal .mass-wa-btn--excel-failed:hover {
            background: #d1fae5;
            border-color: #4ade80;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-summary {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 12px;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-summary__total {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 6px 12px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 700;
            color: #991b1b;
            background: #fee2e2;
            border: 1px solid #fecaca;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-chip {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 5px 10px;
            border-radius: 999px;
            font-size: 11px;
            font-weight: 600;
            color: #475569;
            background: #f1f5f9;
            border: 1px solid #e2e8f0;
            cursor: pointer;
            transition: background 0.15s, border-color 0.15s;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-chip:hover,
        #massWaFailedDeliveryModal .mass-wa-failed-chip.is-active {
            background: #e2e8f0;
            border-color: #cbd5e1;
            color: #0f172a;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-chip__code {
            font-variant-numeric: tabular-nums;
            color: #b91c1c;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-table-scroll {
            max-height: min(58vh, 480px);
            overflow: auto;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            background: #fff;
        }
        #massWaFailedDeliveryModal table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
            min-width: 720px;
        }
        #massWaFailedDeliveryModal th,
        #massWaFailedDeliveryModal td {
            padding: 10px 12px;
            border-bottom: 1px solid #f1f5f9;
            text-align: left;
            vertical-align: top;
        }
        #massWaFailedDeliveryModal tbody tr:nth-child(even) {
            background: #fafbfc;
        }
        #massWaFailedDeliveryModal tbody tr:hover td {
            background: #f8fafc;
        }
        #massWaFailedDeliveryModal th.mass-wa-num-col,
        #massWaFailedDeliveryModal td.mass-wa-num-col {
            text-align: right;
            font-variant-numeric: tabular-nums;
        }
        #massWaFailedDeliveryModal thead {
            position: sticky;
            top: 0;
            background: #f1f5f9;
            z-index: 1;
            box-shadow: 0 1px 0 #e2e8f0;
        }
        #massWaFailedDeliveryModal thead th {
            font-size: 11px;
            font-weight: 700;
            color: #475569;
            text-transform: uppercase;
            letter-spacing: 0.03em;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-donor__name {
            display: block;
            font-weight: 600;
            color: #0f172a;
            line-height: 1.3;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-donor__cedula {
            display: block;
            font-size: 11px;
            color: #64748b;
            margin-top: 2px;
            font-variant-numeric: tabular-nums;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-phone {
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
            color: #334155;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-date {
            font-size: 12px;
            color: #64748b;
            white-space: nowrap;
            font-variant-numeric: tabular-nums;
        }
        #massWaFailedDeliveryModal .mass-wa-err-badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 6px;
            font-size: 11px;
            font-weight: 700;
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
        }
        #massWaFailedDeliveryModal .mass-wa-err-badge--rate {
            background: #fef3c7;
            color: #b45309;
            border: 1px solid #fde68a;
        }
        #massWaFailedDeliveryModal .mass-wa-err-badge--invalid {
            background: #f1f5f9;
            color: #475569;
            border: 1px solid #e2e8f0;
        }
        #massWaFailedDeliveryModal .mass-wa-err-badge--block {
            background: #fee2e2;
            color: #b91c1c;
            border: 1px solid #fecaca;
        }
        #massWaFailedDeliveryModal .mass-wa-err-badge--other {
            background: #ffedd5;
            color: #c2410c;
            border: 1px solid #fed7aa;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-meta-title {
            font-size: 12px;
            color: #334155;
            max-width: 180px;
            line-height: 1.35;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-hint {
            font-size: 11px;
            color: #64748b;
            line-height: 1.4;
            max-width: 220px;
        }
        #massWaFailedDeliveryModal .mass-wa-failed-filter-note {
            font-size: 11px;
            color: #94a3b8;
            margin: 0 0 8px;
        }
        #massWhatsAppSendReportModal .mass-wa-kpi {
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            padding: 14px 16px;
            position: relative;
            overflow: hidden;
            transition: box-shadow 0.2s, transform 0.2s;
        }
        #massWhatsAppSendReportModal .mass-wa-kpi:hover {
            box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
            transform: translateY(-1px);
        }
        #massWhatsAppSendReportModal .mass-wa-kpi__icon {
            width: 34px;
            height: 34px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 15px;
            margin-bottom: 10px;
        }
        #massWhatsAppSendReportModal .mass-wa-kpi--blue .mass-wa-kpi__icon { background: #dbeafe; color: #2563eb; }
        #massWhatsAppSendReportModal .mass-wa-kpi--green .mass-wa-kpi__icon { background: #d1fae5; color: #059669; }
        #massWhatsAppSendReportModal .mass-wa-kpi--teal .mass-wa-kpi__icon { background: #ccfbf1; color: #0d9488; }
        #massWhatsAppSendReportModal .mass-wa-kpi--red .mass-wa-kpi__icon { background: #fee2e2; color: #dc2626; }
        #massWhatsAppSendReportModal .mass-wa-kpi--purple .mass-wa-kpi__icon { background: #ede9fe; color: #7c3aed; }
        #massWhatsAppSendReportModal .mass-wa-kpi--amber .mass-wa-kpi__icon { background: #fef3c7; color: #d97706; }
        #massWhatsAppSendReportModal .mass-wa-kpi--slate .mass-wa-kpi__icon { background: #e2e8f0; color: #475569; }
        #massWhatsAppSendReportModal .mass-wa-kpi__label {
            font-size: 11px;
            font-weight: 600;
            color: #64748b;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }
        #massWhatsAppSendReportModal .mass-wa-kpi__value {
            font-size: 26px;
            font-weight: 800;
            color: #0f172a;
            line-height: 1.15;
            margin-top: 4px;
            letter-spacing: -0.02em;
            text-align: right;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-kpi__value--sm {
            font-size: 14px;
            font-weight: 600;
        }
        #massWhatsAppSendReportModal .mass-wa-kpi__sub {
            font-size: 11px;
            color: #94a3b8;
            margin-top: 4px;
            text-align: right;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-report-analytics {
            margin-bottom: 16px;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip {
            margin: 0 0 12px;
            padding: 12px 14px;
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip[hidden] {
            display: none !important;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip__status {
            display: flex;
            flex-wrap: wrap;
            gap: 8px 16px;
            justify-content: flex-end;
            font-size: 12px;
            color: #475569;
            margin-bottom: 0;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip__status span {
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip__status strong {
            color: #0f172a;
            font-weight: 700;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip--warn {
            background: #fffbeb;
            border-color: #fde68a;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-strip__errors-title {
            font-size: 11px;
            font-weight: 600;
            color: #475569;
            margin: 10px 0 6px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-panel {
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            padding: 14px 16px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-panel__title {
            font-size: 13px;
            font-weight: 700;
            color: #334155;
            margin: 0 0 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-panel__title i { color: #059669; }
        #massWhatsAppSendReportModal .mass-wa-bar-chart {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        #massWhatsAppSendReportModal .mass-wa-bar-row {
            display: grid;
            grid-template-columns: 72px 1fr 52px;
            gap: 8px;
            align-items: center;
            font-size: 12px;
        }
        #massWhatsAppSendReportModal .mass-wa-bar-row__label {
            color: #64748b;
            font-weight: 500;
            white-space: nowrap;
        }
        #massWhatsAppSendReportModal .mass-wa-bar-row__track {
            height: 10px;
            background: #f1f5f9;
            border-radius: 999px;
            overflow: hidden;
        }
        #massWhatsAppSendReportModal .mass-wa-bar-row__fill {
            height: 100%;
            background: linear-gradient(90deg, #059669, #34d399);
            border-radius: 999px;
            transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
            min-width: 2px;
        }
        #massWhatsAppSendReportModal .mass-wa-bar-row__val {
            text-align: right;
            font-weight: 700;
            color: #0f172a;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-tpl-row {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 1fr 48px;
            gap: 8px;
            align-items: center;
            font-size: 12px;
            margin-bottom: 8px;
        }
        #massWhatsAppSendReportModal .mass-wa-tpl-row__name {
            color: #334155;
            font-weight: 500;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        #massWhatsAppSendReportModal .mass-wa-tpl-row__track {
            height: 8px;
            background: #f1f5f9;
            border-radius: 999px;
            overflow: hidden;
        }
        #massWhatsAppSendReportModal .mass-wa-tpl-row__fill {
            height: 100%;
            background: linear-gradient(90deg, #2563eb, #60a5fa);
            border-radius: 999px;
            transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
        }
        #massWhatsAppSendReportModal .mass-wa-report-empty {
            color: #94a3b8;
            font-size: 13px;
            text-align: center;
            padding: 24px 12px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-error {
            display: none;
            padding: 12px 14px;
            background: #fef2f2;
            border: 1px solid #fecaca;
            border-radius: 10px;
            color: #991b1b;
            font-size: 13px;
            margin-bottom: 14px;
            align-items: flex-start;
            gap: 10px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-error.is-visible { display: flex; }
        #massWhatsAppSendReportModal .mass-wa-report-table-wrap {
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            overflow: hidden;
        }
        #massWhatsAppSendReportModal .mass-wa-report-table-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px 16px;
            border-bottom: 1px solid #e2e8f0;
            background: #fafafa;
        }
        #massWhatsAppSendReportModal .mass-wa-report-table-head h3 {
            margin: 0;
            font-size: 13px;
            font-weight: 700;
            color: #334155;
        }
        #massWhatsAppSendReportModal .mass-wa-report-table-scroll {
            overflow-x: auto;
            max-height: min(340px, 38vh);
            overflow-y: auto;
        }
        #massWhatsAppSendReportModal #massWaReportTable {
            width: 100%;
            border-collapse: collapse;
            min-width: 680px;
        }
        #massWhatsAppSendReportModal #massWaReportTable thead {
            position: sticky;
            top: 0;
            z-index: 1;
        }
        #massWhatsAppSendReportModal #massWaReportTable th {
            background: #f1f5f9;
            color: #475569;
            font-size: 11px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            padding: 10px 14px;
            text-align: left;
            border-bottom: 1px solid #e2e8f0;
        }
        #massWhatsAppSendReportModal #massWaReportTable td {
            padding: 10px 14px;
            font-size: 13px;
            color: #334155;
            border-bottom: 1px solid #f1f5f9;
        }
        #massWhatsAppSendReportModal #massWaReportTable tbody tr:hover td {
            background: #f8fafc;
        }
        #massWhatsAppSendReportModal .mass-wa-badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 6px;
            font-size: 11px;
            font-weight: 600;
        }
        #massWhatsAppSendReportModal .mass-wa-badge--tpl {
            background: #eff6ff;
            color: #1d4ed8;
            max-width: 220px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            vertical-align: middle;
        }
        #massWhatsAppSendReportModal .mass-wa-badge--ok {
            background: #d1fae5;
            color: #047857;
        }
        #massWhatsAppSendReportModal .mass-wa-report-pager {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px 16px;
            border-top: 1px solid #e2e8f0;
            font-size: 13px;
            color: #475569;
            background: #fafafa;
        }
        #massWhatsAppSendReportModal .mass-wa-report-loading td {
            text-align: center;
            padding: 28px !important;
            color: #64748b;
        }
        #massWhatsAppSendReportModal .mass-wa-spinner {
            display: inline-block;
            width: 18px;
            height: 18px;
            border: 2px solid #cbd5e1;
            border-top-color: #059669;
            border-radius: 50%;
            animation: massWaSpin 0.7s linear infinite;
            vertical-align: middle;
            margin-right: 8px;
        }
        @keyframes massWaSpin { to { transform: rotate(360deg); } }
        #massWhatsAppSendReportModal .mass-wa-kpi.is-loading .mass-wa-kpi__value {
            background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);
            background-size: 200% 100%;
            animation: massWaShimmer 1.2s infinite;
            color: transparent;
            border-radius: 6px;
            min-height: 28px;
        }
        @keyframes massWaShimmer {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }
        #massWhatsAppSendReportModal .mass-wa-kpi--purple .mass-wa-kpi__icon { background: #ede9fe; color: #7c3aed; }
        #massWhatsAppSendReportModal .mass-wa-report-conversion {
            margin-bottom: 16px;
        }
        #massWhatsAppSendReportModal .mass-wa-conversion-note {
            font-size: 12px;
            color: #64748b;
            margin: 0 0 12px;
            line-height: 1.5;
        }
        #massWhatsAppSendReportModal .mass-wa-conversion-kpis {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 10px;
            margin-bottom: 12px;
        }
        @media (max-width: 900px) {
            #massWhatsAppSendReportModal .mass-wa-conversion-kpis {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        #massWhatsAppSendReportModal .mass-wa-badge--no {
            background: #f1f5f9;
            color: #64748b;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-table-scroll {
            overflow-x: auto;
            max-height: min(420px, 45vh);
            overflow-y: auto;
        }
        #massWhatsAppSendReportModal #massWaConversionTable {
            width: 100%;
            border-collapse: separate;
            border-spacing: 0;
            min-width: 720px;
        }
        #massWhatsAppSendReportModal #massWaConversionTable thead {
            position: sticky;
            top: 0;
            z-index: 2;
        }
        #massWhatsAppSendReportModal #massWaConversionTable th {
            background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
            color: #475569;
            font-size: 11px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            padding: 11px 14px;
            text-align: left;
            border-bottom: 2px solid #e2e8f0;
            white-space: nowrap;
        }
        #massWhatsAppSendReportModal #massWaConversionTable th.mass-wa-conv-th--num,
        #massWhatsAppSendReportModal #massWaConversionTable td.mass-wa-conv-td--num,
        #massWhatsAppSendReportModal .mass-wa-segment-mini-table th.mass-wa-conv-th--num,
        #massWhatsAppSendReportModal .mass-wa-segment-mini-table td.mass-wa-conv-td--num,
        #massWhatsAppSendReportModal .mass-wa-report-mini-table th.mass-wa-num-col,
        #massWhatsAppSendReportModal .mass-wa-report-mini-table td.mass-wa-num-col {
            text-align: right;
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
        }
        #massWhatsAppSendReportModal #massWaConversionTable th.mass-wa-conv-th--num,
        #massWhatsAppSendReportModal #massWaConversionTable td.mass-wa-conv-td--num {
            width: 72px;
        }
        #massWhatsAppSendReportModal #massWaConversionTable th.mass-wa-conv-th--status,
        #massWhatsAppSendReportModal #massWaConversionTable td.mass-wa-conv-td--status {
            text-align: center;
            width: 96px;
        }
        #massWhatsAppSendReportModal #massWaConversionTable td {
            padding: 11px 14px;
            font-size: 13px;
            color: #334155;
            border-bottom: 1px solid #eef2f7;
            vertical-align: middle;
        }
        #massWhatsAppSendReportModal #massWaConversionTable tbody tr.mass-wa-conv-row--yes td {
            background: #f0fdf4;
        }
        #massWhatsAppSendReportModal #massWaConversionTable tbody tr.mass-wa-conv-row--recent td {
            background: #fff7ed;
        }
        #massWhatsAppSendReportModal #massWaConversionTable tbody tr.mass-wa-conv-row--recent td:first-child {
            box-shadow: inset 3px 0 0 #f97316;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-ineligible {
            display: inline-block;
            margin-top: 4px;
            font-size: 10px;
            font-weight: 600;
            color: #c2410c;
            background: #ffedd5;
            border-radius: 4px;
            padding: 2px 6px;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-eligible {
            display: inline-block;
            margin-top: 4px;
            font-size: 10px;
            font-weight: 600;
            color: #15803d;
            background: #dcfce7;
            border-radius: 4px;
            padding: 2px 6px;
        }
        #massWhatsAppSendReportModal #massWaConversionTable tbody tr:not(.mass-wa-conv-row--yes):nth-child(even) td {
            background: #fafbfc;
        }
        #massWhatsAppSendReportModal #massWaConversionTable tbody tr:hover td {
            background: #f1f5f9;
        }
        #massWhatsAppSendReportModal #massWaConversionTable tbody tr.mass-wa-conv-row--yes:hover td {
            background: #dcfce7;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-donor {
            min-width: 148px;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-donor__cedula {
            display: block;
            font-weight: 600;
            color: #0f172a;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-donor__phone {
            display: block;
            margin-top: 2px;
            font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
            font-size: 11px;
            color: #64748b;
            letter-spacing: 0.02em;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-date {
            white-space: nowrap;
            font-size: 12px;
            font-variant-numeric: tabular-nums;
            color: #334155;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-result {
            font-size: 12px;
            line-height: 1.45;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-result__date {
            display: block;
            font-weight: 600;
            color: #047857;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-result__days {
            display: block;
            margin-top: 2px;
            font-size: 11px;
            color: #059669;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-empty {
            color: #94a3b8;
            font-size: 12px;
            font-style: italic;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-msg-count {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 28px;
            height: 28px;
            padding: 0 8px;
            border-radius: 8px;
            background: #eff6ff;
            color: #1d4ed8;
            font-weight: 700;
            font-size: 12px;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-badge--yes {
            background: #dcfce7;
            color: #15803d;
            border: 1px solid #bbf7d0;
            min-width: 36px;
            text-align: center;
        }
        #massWhatsAppSendReportModal .mass-wa-badge--no {
            background: #f8fafc;
            color: #94a3b8;
            border: 1px solid #e2e8f0;
            min-width: 36px;
            text-align: center;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-filter {
            font-size: 12px;
            color: #475569;
            display: flex;
            align-items: center;
            gap: 8px;
            cursor: pointer;
            user-select: none;
            padding: 6px 10px;
            border-radius: 8px;
            border: 1px solid #e2e8f0;
            background: #fff;
            transition: border-color 0.15s, background 0.15s;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-filter:hover {
            border-color: #cbd5e1;
            background: #f8fafc;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-filter input {
            accent-color: #059669;
            width: 15px;
            height: 15px;
            margin: 0;
            cursor: pointer;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-export-actions {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
            justify-content: flex-end;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-sort {
            font-size: 12px;
            color: #475569;
            padding: 6px 10px;
            border-radius: 8px;
            border: 1px solid #e2e8f0;
            background: #fff;
            min-width: 180px;
        }
        #massWhatsAppSendReportModal .mass-wa-btn--pdf {
            background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
            color: #fff;
            border: none;
        }
        #massWhatsAppSendReportModal .mass-wa-btn--pdf:hover {
            background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
        }
        #massWhatsAppSendReportModal .mass-wa-report-tabs {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-bottom: 16px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-tab {
            border: 1px solid #cbd5e1;
            background: #fff;
            color: #475569;
            font-size: 13px;
            font-weight: 600;
            padding: 8px 16px;
            border-radius: 10px;
            cursor: pointer;
            transition: all 0.15s ease;
        }
        #massWhatsAppSendReportModal .mass-wa-report-tab:hover {
            border-color: #059669;
            color: #047857;
            background: #ecfdf5;
        }
        #massWhatsAppSendReportModal .mass-wa-report-tab.is-active {
            background: #059669;
            border-color: #059669;
            color: #fff;
        }
        #massWhatsAppSendReportModal .mass-wa-report-tab-panel {
            display: none;
        }
        #massWhatsAppSendReportModal .mass-wa-report-tab-panel.is-active {
            display: block;
        }
        #massWhatsAppSendReportModal .mass-wa-report-warning {
            background: #fffbeb;
            border: 1px solid #fcd34d;
            border-radius: 10px;
            padding: 12px 14px;
            margin-bottom: 14px;
            font-size: 13px;
            color: #92400e;
            line-height: 1.45;
            display: flex;
            gap: 10px;
            align-items: flex-start;
        }
        #massWhatsAppSendReportModal .mass-wa-report-warning i {
            color: #d97706;
            margin-top: 2px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-legibility {
            display: flex;
            gap: 10px;
            align-items: flex-start;
            margin: 0 0 12px;
            padding: 10px 12px;
            background: #eff6ff;
            border: 1px solid #bfdbfe;
            border-radius: 10px;
            font-size: 12px;
            color: #1e40af;
            line-height: 1.45;
        }
        #massWhatsAppSendReportModal .mass-wa-report-legibility i {
            margin-top: 2px;
            flex-shrink: 0;
        }
        #massWhatsAppSendReportModal .mass-wa-report-legibility strong {
            color: #1e3a8a;
        }
        #massWhatsAppSendReportModal .mass-wa-funnel-row {
            display: grid;
            grid-template-columns: 140px 1fr 56px;
            gap: 8px;
            align-items: center;
            font-size: 12px;
            margin-bottom: 8px;
        }
        #massWhatsAppSendReportModal .mass-wa-funnel-row__label { color: #475569; }
        #massWhatsAppSendReportModal .mass-wa-funnel-row__track {
            height: 10px;
            background: #f1f5f9;
            border-radius: 999px;
            overflow: hidden;
        }
        #massWhatsAppSendReportModal .mass-wa-funnel-row__fill {
            height: 100%;
            background: linear-gradient(90deg, #059669, #34d399);
            border-radius: 999px;
            min-width: 2px;
        }
        #massWhatsAppSendReportModal .mass-wa-funnel-row__val {
            text-align: right;
            font-weight: 700;
            color: #0f172a;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-health-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-diag-note {
            font-size: 11px;
            color: #64748b;
            margin: -6px 0 10px;
            line-height: 1.45;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-diag-list {
            margin: 0;
            padding: 0;
            list-style: none;
            font-size: 12px;
            color: #475569;
            line-height: 1.55;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-diag-list li {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            padding: 6px 0;
            border-bottom: 1px solid #f1f5f9;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-diag-list li:last-child {
            border-bottom: none;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-diag-list__val {
            font-weight: 700;
            color: #0f172a;
            text-align: right;
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-stat {
            background: #f8fafc;
            border-radius: 8px;
            padding: 10px 12px;
            border: 1px solid #e2e8f0;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-stat__label {
            font-size: 10px;
            font-weight: 600;
            color: #64748b;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-stat__value {
            font-size: 20px;
            font-weight: 800;
            color: #0f172a;
            margin-top: 4px;
            text-align: right;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-demographics-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 14px;
            margin-bottom: 16px;
        }
        @media (max-width: 860px) {
            #massWhatsAppSendReportModal .mass-wa-demographics-grid {
                grid-template-columns: 1fr;
            }
        }
        #massWhatsAppSendReportModal .mass-wa-conv-profile {
            font-size: 11px;
            color: #64748b;
            line-height: 1.4;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-badge {
            display: inline-block;
            font-size: 10px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.03em;
            padding: 3px 8px;
            border-radius: 6px;
        }
        #massWhatsAppSendReportModal .mass-wa-meta-badge--read { background: #dbeafe; color: #1d4ed8; }
        #massWhatsAppSendReportModal .mass-wa-meta-badge--delivered { background: #d1fae5; color: #047857; }
        #massWhatsAppSendReportModal .mass-wa-meta-badge--sent { background: #f1f5f9; color: #475569; }
        #massWhatsAppSendReportModal .mass-wa-meta-badge--failed { background: #fee2e2; color: #b91c1c; }
        #massWhatsAppSendReportModal .mass-wa-meta-badge--none { background: #f8fafc; color: #94a3b8; }
        #massWhatsAppSendReportModal .mass-wa-segment-grid {
            margin-bottom: 8px;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-summary {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 14px;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-summary__chip {
            flex: 1 1 140px;
            background: #f8fafc;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            padding: 10px 12px;
            font-size: 12px;
            color: #475569;
            line-height: 1.45;
            text-align: right;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-summary__chip strong {
            display: block;
            font-size: 18px;
            font-weight: 800;
            color: #0f172a;
            margin-bottom: 2px;
            text-align: right;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-panel__stats {
            font-size: 11px;
            color: #64748b;
            font-weight: 500;
            margin-left: auto;
            text-align: right;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-report-mini-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 11px;
        }
        #massWhatsAppSendReportModal .mass-wa-report-mini-table th,
        #massWhatsAppSendReportModal .mass-wa-report-mini-table td {
            padding: 4px 6px;
            vertical-align: top;
            border-bottom: 1px solid #f1f5f9;
        }
        #massWhatsAppSendReportModal .mass-wa-report-mini-table thead th {
            color: #64748b;
            font-weight: 600;
            text-align: left;
        }
        #massWhatsAppSendReportModal .mass-wa-report-mini-table thead th.mass-wa-num-col {
            text-align: right;
        }
        #massWhatsAppSendReportModal .mass-wa-conv-msg-count {
            display: inline-block;
            min-width: 2ch;
            text-align: right;
            font-variant-numeric: tabular-nums;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-mini-table {
            width: 100%;
            border-collapse: collapse;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-mini-table th,
        #massWhatsAppSendReportModal .mass-wa-segment-mini-table td {
            padding: 8px 10px;
            font-size: 12px;
            border-bottom: 1px solid #f1f5f9;
            vertical-align: middle;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-mini-table thead th {
            background: #f8fafc;
            font-size: 10px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            color: #64748b;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-mini-table tbody tr:last-child td {
            border-bottom: none;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-label {
            font-weight: 600;
            color: #1e293b;
            max-width: 120px;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-rate-cell {
            min-width: 110px;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-rate {
            position: relative;
            height: 22px;
            background: #f1f5f9;
            border-radius: 6px;
            overflow: hidden;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-rate__bar {
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            border-radius: 6px;
            transition: width 0.2s ease;
        }
        #massWhatsAppSendReportModal .mass-wa-segment-rate--high .mass-wa-segment-rate__bar { background: #10b981; }
        #massWhatsAppSendReportModal .mass-wa-segment-rate--mid .mass-wa-segment-rate__bar { background: #3b82f6; }
        #massWhatsAppSendReportModal .mass-wa-segment-rate--low .mass-wa-segment-rate__bar { background: #cbd5e1; }
        #massWhatsAppSendReportModal .mass-wa-segment-rate__pct {
            position: relative;
            z-index: 1;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            height: 100%;
            padding: 0 8px;
            font-size: 11px;
            font-weight: 700;
            color: #0f172a;
        }
        #massWhatsAppSendReportModal .mass-wa-report-table-head--segment {
            flex-wrap: wrap;
            gap: 8px;
        }

        .campaigns-section {
            margin-top: 0;
        }
        
        /* Audit Summary Cards */
        .audit-summary-card {
            background: #ffffff;
            border: 1px solid rgba(226, 232, 240, 0.8);
            border-radius: 10px;
            padding: 16px;
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 3px 7px rgba(0, 0, 0, 0.04);
            margin-top: 0;
        }

        .audit-summary-label {
            font-size: 11px;
            color: #64748b;
            margin-bottom: 8px;
            font-weight: 500;
        }

        .audit-summary-value {
            font-size: 24px;
            font-weight: 600;
            color: #1e293b;
        }

        #summaryCancelled .audit-summary-value {
            color: #dc2626;
        }

        #summaryModified .audit-summary-value {
            color: #f59e0b;
        }

        #summaryRecent .audit-summary-value {
            color: #3b82f6;
        }

        .section-title {
            font-size: 12px;
            font-weight: 500;
            color: var(--text-primary);
            margin-bottom: 13px;
        }

        /* Campaigns Table - INS Format */
        .campaigns-table-container {
            background: #ffffff;
            border: 1px solid rgba(226, 232, 240, 0.8);
            border-radius: 14px;
            overflow: hidden;
            box-shadow: 
                0 1px 2px rgba(0, 0, 0, 0.04),
                0 3px 7px rgba(0, 0, 0, 0.04),
                0 7px 14px rgba(0, 0, 0, 0.04);
            overflow-x: auto;
            padding: 0;
            transition: box-shadow 0.3s ease, transform 0.2s ease;
        }

        .campaigns-table-container:hover {
            box-shadow: 
                0 2px 4px rgba(0, 0, 0, 0.06),
                0 5px 10px rgba(0, 0, 0, 0.06),
                0 10px 20px rgba(0, 0, 0, 0.06);
        }

        .campaigns-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 11px;
            table-layout: fixed;
            margin: 0;
        }

        .campaigns-table thead {
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 50%, #e2e8f0 100%);
            border-bottom: 2px solid rgba(226, 232, 240, 0.6);
            position: sticky;
            top: 0;
            z-index: 10;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
        }

        .campaigns-table thead tr {
            margin: 0;
        }

        .campaigns-table thead th:first-child {
            padding-left: 20px;
        }

        .campaigns-table thead th:last-child {
            padding-right: 20px;
        }

        .campaigns-table th {
            padding: 12px 10px;
            text-align: left;
            font-weight: 600;
            font-size: 10px;
            color: #374151;
            text-transform: none;
            letter-spacing: 0.3px;
            white-space: nowrap;
            border-right: 1px solid #e5e7eb;
            cursor: help;
            position: relative;
        }

        .campaigns-table th:hover {
            background: rgba(99, 102, 241, 0.05);
        }

        /* Column Width Distribution */
        .campaigns-table .col-name {
            min-width: 180px;
            width: 15%;
        }

        .campaigns-table .col-datetime {
            min-width: 140px;
            width: 12%;
        }

        .campaigns-table .col-address {
            min-width: 200px;
            width: 18%;
        }

        .campaigns-table .col-location {
            min-width: 120px;
            width: 10%;
        }

        .campaigns-table .col-responsible {
            min-width: 140px;
            width: 12%;
        }

        .campaigns-table .col-phone {
            min-width: 120px;
            width: 10%;
        }

        .campaigns-table .col-email {
            min-width: 180px;
            width: 15%;
        }

        .campaigns-table .col-actions {
            min-width: 100px;
            width: 8%;
            text-align: center;
        }

        .campaigns-table th:last-child {
            border-right: none;
        }

        .campaigns-table td:last-child {
            border-right: none;
        }

        .campaigns-table tbody tr {
            border-bottom: 1px solid rgba(243, 244, 246, 0.8);
            transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
            background: #ffffff;
        }

        .campaigns-table tbody tr:hover {
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
            box-shadow: 0 2px 8px rgba(99, 102, 241, 0.08);
            transform: translateY(-1px);
        }

        .campaigns-table tbody tr:nth-child(even) {
            background: #fafbfc;
        }

        .campaigns-table tbody tr:nth-child(even):hover {
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
        }

        .campaigns-table tbody tr:last-child {
            border-bottom: none;
        }

        .campaigns-table td {
            padding: 12px 10px;
            color: #111827;
            vertical-align: middle;
            border-right: 1px solid rgba(243, 244, 246, 0.6);
            transition: color 0.2s ease;
        }

        .campaigns-table tbody td:first-child {
            padding-left: 20px;
        }

        .campaigns-table tbody td:last-child {
            padding-right: 20px;
        }

        .campaigns-table tbody tr:hover td {
            color: #0f172a;
        }

        .campaigns-table td:last-child {
            border-right: none;
        }

        .campaign-name-cell {
            font-weight: 600;
            color: #111827;
        }

        .campaign-actions-cell {
            text-align: center;
            width: 100px;
        }

        .btn-cancel-campaign {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 6px;
            background: #fee2e2;
            color: #dc2626;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .btn-cancel-campaign:hover {
            background: #fecaca;
            transform: scale(1.1);
        }

        .status-cancelled-text {
            color: #991b1b;
            font-size: 11px;
            font-weight: 600;
        }

        /* Legacy styles (kept for compatibility) */
        .campaigns-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 15px;
        }

        .campaign-card {
            background: #fff;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            padding: 16px;
            transition: all 0.2s ease;
        }

        .campaign-card:hover {
            border-color: var(--text-primary);
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            transform: translateY(-2px);
        }


        .campaign-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 12px;
        }

        .campaign-title {
            font-size: 14px;
            font-weight: 600;
            color: var(--text-primary);
            flex: 1;
        }

        .campaign-status {
            font-size: 10px;
            padding: 4px 8px;
            border-radius: 4px;
            font-weight: 600;
            text-transform: uppercase;
        }

        .status-active {
            background: #e8f5e9;
            color: #2e7d32;
        }

        .status-completed {
            background: #e3f2fd;
            color: #1976d2;
        }

        .status-cancelled {
            background: #ffebee;
            color: #c62828;
        }

        .status-planned {
            background: #fff3e0;
            color: #f57c00;
        }

        .status-pending {
            background: #fef3c7;
            color: #92400e;
        }

        .campaign-info {
            font-size: 12px;
            color: #666;
            margin-bottom: 8px;
        }

        .campaign-info strong {
            color: var(--text-primary);
        }

        .campaign-info-row {
            font-size: 12px;
            color: #666;
            margin-top: 8px;
            line-height: 1.5;
        }

        .campaign-info-row strong {
            color: var(--text-primary);
        }

        .status-filters {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 20px;
        }

        .status-filter-tag {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 8px 16px;
            border: 1px solid #e5e5e5;
            border-radius: 20px;
            background: #fff;
            cursor: pointer;
            transition: all 0.2s ease;
            font-size: 13px;
            color: #666;
        }

        .status-filter-tag:hover {
            border-color: var(--text-primary);
            background: #f5f5f5;
        }

        .status-filter-tag.active {
            background: #1a1a1a;
            color: #fff;
            border-color: var(--text-primary);
        }

        .status-filter-tag.active .filter-count {
            background: rgba(255, 255, 255, 0.2);
        }

        .filter-label {
            font-weight: 500;
        }

        .filter-count {
            background: #e5e5e5;
            color: var(--text-primary);
            padding: 2px 8px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            min-width: 20px;
            text-align: center;
        }

        .status-filter-tag.active .filter-count {
            background: rgba(255, 255, 255, 0.3);
            color: #fff;
        }

        .campaign-card.hidden {
            display: none;
        }

        .campaign-table-row.hidden {
            display: none;
        }

        .campaign-dates {
            display: flex;
            gap: 12px;
            margin-bottom: 8px;
        }

        .campaign-location {
            margin-bottom: 8px;
        }

        .campaign-progress {
            margin-top: 12px;
            padding-top: 12px;
            border-top: 1px solid #e5e5e5;
        }

        .progress-label {
            font-size: 11px;
            color: #666;
            margin-bottom: 4px;
            display: flex;
            justify-content: space-between;
        }

        .progress-bar {
            height: 6px;
            background: #e5e5e5;
            border-radius: 3px;
            overflow: hidden;
        }

        .progress-fill {
            height: 100%;
            background: #4caf50;
            transition: width 0.3s ease;
        }

        .empty-state {
            text-align: center;
            padding: 60px 20px;
            color: #666;
            background: #fff;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
        }

        .empty-state-icon {
            font-size: 48px;
            margin-bottom: 16px;
        }

        .empty-state-text {
            font-size: 14px;
            line-height: 1.6;
            max-width: 500px;
            margin: 0 auto;
        }

        .error-message {
            background: #ffebee;
            border: 1px solid #ffcdd2;
            border-radius: 8px;
            padding: 15px;
            color: #c62828;
            font-size: 13px;
            margin-bottom: 20px;
        }

        /* Modern Action Buttons Container */
        .action-buttons-container {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 20px;
            margin-top: 16px;
            padding-top: 16px;
            border-top: 2px solid #f3f4f6;
            flex-wrap: wrap;
        }

        /* Base Action Button Style */
        .action-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            padding: 11px 32px;
            font-size: 15px;
            font-weight: 600;
            letter-spacing: 0.3px;
            border: none;
            border-radius: 12px;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            white-space: nowrap;
            height: 35px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
            position: relative;
            overflow: hidden;
            text-transform: none;
        }

        .action-btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .action-btn:hover::before {
            left: 100%;
        }

        .action-btn::after {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 0;
            height: 0;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.2);
            transform: translate(-50%, -50%);
            transition: width 0.4s ease, height 0.4s ease;
        }

        .action-btn:hover::after {
            width: 300px;
            height: 300px;
        }

        .action-btn svg {
            flex-shrink: 0;
            transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
        }

        .action-btn:hover svg {
            transform: scale(1.2) rotate(5deg);
        }

        .action-btn:active {
            transform: translateY(2px);
            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
        }

        /* Primary Button - Nueva Campaña (Azul/Índigo) */
        .action-btn-primary {
            background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
            color: #ffffff;
            border: 2px solid transparent;
        }

        .action-btn-primary:hover {
            background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
            box-shadow: 0 8px 20px rgba(59, 130, 246, 0.5), 0 4px 8px rgba(0, 0, 0, 0.15);
            transform: translateY(-3px) scale(1.02);
            border-color: rgba(255, 255, 255, 0.3);
        }

        .action-btn-primary:active {
            transform: translateY(-1px) scale(0.98);
        }

        /* Secondary Button - Descargar Plantilla (Púrpura/Morado) */
        .action-btn-secondary {
            background: linear-gradient(135deg, #a855f7 0%, #9333ea 100%);
            color: #ffffff;
            border: 2px solid transparent;
        }

        .action-btn-secondary:hover {
            background: linear-gradient(135deg, #9333ea 0%, #7e22ce 100%);
            box-shadow: 0 8px 20px rgba(168, 85, 247, 0.5), 0 4px 8px rgba(0, 0, 0, 0.15);
            transform: translateY(-3px) scale(1.02);
            border-color: rgba(255, 255, 255, 0.3);
        }

        .action-btn-secondary:active {
            transform: translateY(-1px) scale(0.98);
        }

        /* Email Button - Enviar por Email (Naranja/Amber) */
        .action-btn-email {
            background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
            color: #ffffff;
            border: 2px solid transparent;
        }

        .action-btn-email:hover {
            background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
            box-shadow: 0 8px 20px rgba(245, 158, 11, 0.5), 0 4px 8px rgba(0, 0, 0, 0.15);
            transform: translateY(-3px) scale(1.02);
            border-color: rgba(255, 255, 255, 0.3);
        }

        .action-btn-email:active {
            transform: translateY(-1px) scale(0.98);
        }

        /* Success Button - Exportar Excel (Verde/Esmeralda) */
        .action-btn-success {
            background: linear-gradient(135deg, #10b981 0%, #059669 100%);
            color: #ffffff;
            border: 2px solid transparent;
        }

        .action-btn-success:hover {
            background: linear-gradient(135deg, #059669 0%, #047857 100%);
            box-shadow: 0 8px 20px rgba(16, 185, 129, 0.5), 0 4px 8px rgba(0, 0, 0, 0.15);
            transform: translateY(-3px) scale(1.02);
            border-color: rgba(255, 255, 255, 0.3);
        }

        .action-btn-success:active {
            transform: translateY(-1px) scale(0.98);
        }

        /* Audit Button - Auditoría (Púrpura/Índigo) */
        .action-btn-audit {
            background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
            color: #ffffff;
            border: 2px solid transparent;
        }

        .action-btn-audit:hover {
            background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
            box-shadow: 0 8px 20px rgba(139, 92, 246, 0.5), 0 4px 8px rgba(0, 0, 0, 0.15);
            transform: translateY(-3px) scale(1.02);
            border-color: rgba(255, 255, 255, 0.3);
        }

        .action-btn-audit:active {
            transform: translateY(-1px) scale(0.98);
        }

        .action-btn-sihevi {
            background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%);
            color: #ffffff;
            border: 2px solid transparent;
        }
        .action-btn-sihevi:hover {
            background: linear-gradient(135deg, #0d9488 0%, #0f766e 100%);
            box-shadow: 0 8px 20px rgba(13, 148, 136, 0.45), 0 4px 8px rgba(0, 0, 0, 0.15);
            transform: translateY(-3px) scale(1.02);
            border-color: rgba(255, 255, 255, 0.3);
        }
        .action-btn-sihevi:hover svg {
            transform: none;
        }
        .action-btn-sihevi:active {
            transform: translateY(-1px) scale(0.98);
        }
        .action-menu {
            position: relative;
            display: inline-flex;
            z-index: 30;
        }
        .action-menu.open {
            z-index: 60;
        }
        .action-menu-panel {
            position: absolute;
            top: calc(100% + 8px);
            left: 50%;
            transform: translateX(-50%);
            min-width: 260px;
            background: #fff;
            border: 1px solid #e4e4e7;
            border-radius: 12px;
            box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
            padding: 8px;
            z-index: 61;
        }
        .action-menu-head {
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            color: #71717a;
            padding: 6px 10px 8px;
        }
        .action-menu-item {
            display: flex;
            align-items: center;
            gap: 10px;
            width: 100%;
            border: none;
            background: transparent;
            text-align: left;
            padding: 9px 10px;
            border-radius: 8px;
            font-size: 13px;
            font-weight: 600;
            color: #3f3f46;
            cursor: pointer;
        }
        .action-menu-item:hover {
            background: #f4f4f5;
            color: #18181b;
        }
        .action-menu-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            flex-shrink: 0;
        }
        .action-menu .sihevi-caret {
            transition: transform 0.2s ease;
        }
        .action-menu.open .sihevi-caret {
            transform: rotate(180deg);
        }

        /* Legacy Action Button (kept for compatibility) */
        .action-button {
            background: var(--primary);
            color: #fff;
            border: none;
            border-radius: 6px;
            padding: 10px 20px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s ease;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .action-button:hover {
            background: #5568d3;
        }

        .modal-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1000;
            align-items: center;
            justify-content: center;
        }

        .modal-overlay.active {
            display: flex;
        }

        #allGeocodedSitesMapModal.modal-overlay {
            align-items: stretch;
            justify-content: stretch;
            padding: 10px;
            box-sizing: border-box;
            z-index: 20000;
        }
        #allGeocodedSitesMapModal .modal {
            max-width: none;
            width: 100%;
            height: 100%;
            max-height: none;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            padding: 10px 14px 12px;
            border-radius: 12px;
            position: relative;
            z-index: 1;
        }
        #allGeocodedSitesMapModal .modal-header {
            margin-bottom: 8px;
            flex-shrink: 0;
            position: relative;
            z-index: 2;
            gap: 12px;
        }
        #allGeocodedSitesMapModal .modal-close {
            display: none;
        }
        #allGeocodedMapCloseBtn {
            flex-shrink: 0;
            font-size: 14px;
            font-weight: 600;
            padding: 8px 16px;
            border-radius: 8px;
            cursor: pointer;
        }
        #allGeocodedMapBody {
            flex: 1;
            min-height: 0;
            display: flex;
            position: relative;
        }
        #allGeocodedSitesMap {
            flex: 1 1 auto;
            min-width: 0;
            min-height: 0;
            position: relative;
            z-index: 1;
            overflow: hidden;
        }
        .leaflet-tooltip.banchy-geo-tooltip {
            background: #0f172a;
            color: #f8fafc;
            border: none;
            border-radius: 8px;
            padding: 8px 10px;
            font-size: 12px;
            line-height: 1.35;
            box-shadow: 0 8px 20px rgba(15, 23, 42, 0.28);
        }
        .leaflet-tooltip.banchy-geo-tooltip::before {
            border-top-color: #0f172a;
        }
        .banchy-geo-cluster-icon {
            background: transparent;
            border: none;
        }
        .banchy-geo-cluster {
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            color: #fff;
            font-weight: 700;
            border: 2px solid #fff;
            box-shadow: 0 1px 5px rgba(15, 23, 42, 0.35);
            line-height: 1;
            box-sizing: border-box;
        }
        .banchy-geo-legend {
            background: rgba(255, 255, 255, 0.94);
            padding: 8px 10px;
            border-radius: 8px;
            box-shadow: 0 1px 6px rgba(15, 23, 42, 0.22);
            font-size: 12px;
            line-height: 1.55;
            color: #0f172a;
        }
        .banchy-geo-legend span.swatch {
            display: inline-block;
            width: 12px;
            height: 12px;
            border-radius: 50%;
            vertical-align: middle;
            margin-right: 6px;
            border: 2px solid #fff;
            box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.25);
        }

        .modal {
            background: #fff;
            border-radius: 10px;
            padding: 20px;
            max-width: 800px;
            width: 90%;
            max-height: 90vh;
            overflow-y: auto;
            box-shadow: 0 3px 17px rgba(0, 0, 0, 0.15);
        }


        .modal-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 17px;
        }

        .modal-title {
            font-size: 15px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .modal-close {
            background: none;
            border: none;
            font-size: 20px;
            cursor: pointer;
            color: #666;
            padding: 0;
            width: 26px;
            height: 26px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .modal-close:hover {
            color: var(--text-primary);
        }

        .form-group {
            margin-bottom: 14px;
        }

        .form-label {
            display: block;
            font-size: 10px;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 5px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .form-label.required::after {
            content: " *";
            color: #e74c3c;
        }

        .form-input,
        .form-select,
        .form-textarea {
            width: 100%;
            padding: 9px 10px;
            border: 1px solid #e5e5e5;
            border-radius: 5px;
            font-size: 11px;
            color: var(--text-primary);
            background: #fff;
            transition: all 0.2s ease;
        }

        .form-input:focus,
        .form-select:focus,
        .form-textarea:focus {
            outline: none;
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
        }

        .form-textarea {
            resize: vertical;
            min-height: 80px;
        }

        .form-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }

        .form-actions {
            display: flex;
            gap: 10px;
            justify-content: flex-end;
            margin-top: 20px;
            padding-top: 17px;
            border-top: 1px solid #e5e5e5;
        }

        .btn-primary {
            background: var(--primary);
            color: #fff;
            border: none;
            border-radius: 6px;
            padding: 10px 20px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .btn-primary:hover {
            background: #5568d3;
        }

        .btn-secondary {
            background: #f5f5f5;
            color: var(--text-primary);
            border: 1px solid #e5e5e5;
            border-radius: 6px;
            padding: 10px 20px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s ease;
        }

        /* Alert styles for email modal */
        .alert {
            padding: 12px 16px;
            border-radius: 6px;
            margin-bottom: 16px;
            font-size: 13px;
            line-height: 1.5;
        }

        .alert-success {
            background: #d1fae5;
            color: #065f46;
            border: 1px solid #6ee7b7;
        }

        .alert-error {
            background: #fee2e2;
            color: #991b1b;
            border: 1px solid #fca5a5;
        }

        .alert-info {
            background: #dbeafe;
            color: #1e40af;
            border: 1px solid #93c5fd;
        }

        .btn-secondary:hover {
            background: #e5e5e5;
        }

        .loading {
            opacity: 0.6;
            pointer-events: none;
        }

        .success-message {
            background: #e8f5e9;
            border: 1px solid #c8e6c9;
            border-radius: 8px;
            padding: 12px;
            color: #2e7d32;
            font-size: 13px;
            margin-bottom: 16px;
        }

        /* Modern Search and Filters Panel */
        .search-filters-modern {
            background: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            padding: 14px 24px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1);
            transition: box-shadow 0.2s ease;
        }

        .search-filters-modern:hover {
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05), 0 2px 4px rgba(0, 0, 0, 0.1);
        }

        .filters-grid-modern {
            display: flex;
            align-items: flex-end;
            gap: 17px;
            flex-wrap: wrap;
        }

        .jornadas-toolbar {
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            gap: 12px 20px;
            flex-wrap: wrap;
            background: #ffffff;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            padding: 12px 16px;
            margin-bottom: 16px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.08);
        }
        .jornadas-toolbar-filters {
            display: flex;
            align-items: flex-end;
            gap: 10px;
            flex-wrap: wrap;
            flex: 1 1 280px;
            min-width: 0;
        }
        .jornadas-toolbar-actions {
            display: flex;
            align-items: flex-end;
            justify-content: flex-end;
            flex: 0 1 auto;
            margin-left: auto;
        }
        .jornadas-toolbar .filter-item-depto {
            flex: 0 0 168px;
            min-width: 148px;
            max-width: 180px;
        }
        .jornadas-toolbar .filter-item-town {
            flex: 0 0 190px;
            min-width: 160px;
            max-width: 210px;
        }
        .jornadas-toolbar .filter-item-month {
            flex: 0 0 142px;
            min-width: 132px;
            max-width: 150px;
        }
        .jornadas-toolbar .filter-item-clear {
            flex: 0 0 auto;
        }
        #promotions-tab-jornadas.jornadas-mode-plan .jornadas-campaigns-only {
            display: none !important;
        }
        .jornadas-toolbar-actions .action-buttons-container {
            margin: 0;
            padding: 0;
            border: none;
            justify-content: flex-end;
            gap: 8px;
        }
        .jornadas-toolbar-actions .action-btn {
            padding: 0 12px;
            height: 32px;
            font-size: 12px;
            gap: 6px;
            border-radius: 9px;
            letter-spacing: 0;
        }
        .jornadas-toolbar-actions .action-btn svg {
            width: 15px;
            height: 15px;
        }
        .jornadas-toolbar-actions .action-btn:hover {
            transform: translateY(-1px);
        }
        .jornadas-toolbar-actions .action-btn:hover svg {
            transform: none;
        }
        .jornadas-toolbar-actions .action-menu-panel {
            left: auto;
            right: 0;
            transform: none;
        }

        .filter-item-modern {
            display: flex;
            flex-direction: column;
            gap: 6px;
            flex: 0 0 136px;
        }

        .filter-label-modern {
            display: flex;
            align-items: center;
            font-size: 10px;
            font-weight: 600;
            color: #6b7280;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 0;
        }

        .filter-select-modern {
            width: 100%;
            height: 29px;
            padding: 0 12px;
            border: 1.5px solid #e5e7eb;
            border-radius: 7px;
            font-size: 12px;
            color: #111827;
            background: #ffffff;
            transition: all 0.2s ease;
            box-sizing: border-box;
            cursor: pointer;
            appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4L6 8L10 4' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 12px center;
            padding-right: 36px;
        }

        .filter-select-modern:hover {
            border-color: #d1d5db;
            background-color: #f9fafb;
        }

        .filter-select-modern:focus {
            outline: none;
            border-color: #6366f1;
            box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
            background-color: #ffffff;
        }

        .clear-btn-modern {
            display: flex;
            align-items: center;
            justify-content: center;
            height: 29px;
            padding: 0 15px;
            background: #ffffff;
            border: 1.5px solid #e5e7eb;
            border-radius: 7px;
            font-size: 12px;
            font-weight: 500;
            color: #6b7280;
            cursor: pointer;
            transition: all 0.2s ease;
            white-space: nowrap;
        }

        .clear-btn-modern:hover {
            background: #f9fafb;
            border-color: #fca5a5;
            color: #dc2626;
            transform: translateY(-1px);
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        }

        .clear-btn-modern:active {
            transform: translateY(0);
        }

        /* Modern Date Navigation */
        .schedule-nav-modern {
            display: flex;
            align-items: center;
            gap: 3px;
            background: #ffffff;
            border: 1.5px solid #e5e7eb;
            border-radius: 7px;
            padding: 2px;
            height: 29px;
            box-sizing: border-box;
        }

        .schedule-nav-btn-modern {
            background: transparent;
            border: none;
            border-radius: 5px;
            padding: 5px 7px;
            color: #6b7280;
            cursor: pointer;
            transition: all 0.2s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            min-width: 27px;
            height: 29px;
            flex-shrink: 0;
        }

        .schedule-nav-btn-modern:hover {
            background: #f3f4f6;
            color: #6366f1;
        }

        .schedule-nav-btn-modern:active {
            transform: scale(0.95);
        }

        .schedule-nav-btn-modern svg {
            display: block;
        }

        .schedule-month-year-modern {
            font-size: 12px;
            font-weight: 600;
            color: #111827;
            min-width: 128px;
            text-align: center;
            padding: 0 10px;
            background: transparent;
            border-radius: 5px;
            letter-spacing: 0.2px;
            height: 29px;
            display: flex;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;
            flex-shrink: 0;
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .schedule-month-year-modern:hover {
            background: #f3f4f6;
            color: #6366f1;
        }

        /* Search and Filters Panel - Legacy (kept for compatibility) */
        .search-filters-panel {
            background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            padding: 13.6px;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
            display: flex;
            flex-direction: column;
            height: fit-content;
            min-height: 40.8px;
        }

        .search-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 0;
            min-height: 40.8px;
        }

        .toggle-search-btn {
            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
            border: none;
            border-radius: 5px;
            padding: 5px 10px;
            color: #ffffff;
            font-size: 10px;
            cursor: pointer;
            transition: all 0.3s;
        }

        .toggle-search-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
        }

        .search-content {
            padding-top: 10px;
            border-top: 1px solid #e2e8f0;
        }

        .search-content-single-line {
            display: flex;
            flex-direction: row;
            align-items: flex-end;
            gap: 16px;
            flex-wrap: wrap;
            padding: 10px 0;
        }

        .search-field-inline {
            display: flex;
            flex-direction: column;
            flex-shrink: 0;
            min-width: 140px;
        }

        .search-label-inline {
            font-size: 11px;
            font-weight: 600;
            color: #4a5568;
            margin-bottom: 4px;
            text-transform: uppercase;
            letter-spacing: 0.3px;
        }

        .search-row {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 13.6px;
            margin-bottom: 13.6px;
        }


        .search-field {
            display: flex;
            flex-direction: column;
            gap: 5px;
        }

        .search-label {
            font-size: 10px;
            font-weight: 600;
            color: #4a5568;
            margin-bottom: 5px;
            text-transform: uppercase;
            letter-spacing: 0.4px;
        }

        .search-input,
        .search-select {
            width: 100%;
            height: 38px;
            padding: 8px 12px;
            border: 2px solid #e2e8f0;
            border-radius: 7px;
            font-size: 13px;
            color: #2d3748;
            background: #ffffff;
            transition: all 0.3s;
            box-sizing: border-box;
            line-height: 1.5;
        }

        .search-input:focus,
        .search-select:focus {
            outline: none;
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
        }

        .search-input:hover,
        .search-select:hover {
            border-color: #c7d2fe;
        }
        
        /* Modern month input styling */
        input[type="month"] {
            -webkit-appearance: none;
            -moz-appearance: textfield;
            appearance: none;
            cursor: pointer;
            font-size: 13px;
            padding: 10px 12px;
        }
        
        input[type="month"]::-webkit-calendar-picker-indicator {
            cursor: pointer;
            opacity: 0.7;
            transition: opacity 0.2s ease;
            padding: 4px;
            margin-left: 4px;
        }
        
        input[type="month"]::-webkit-calendar-picker-indicator:hover {
            opacity: 1;
        }
        
        input[type="month"]:focus {
            border-color: var(--primary);
            outline: none;
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
        }

        .clear-search-btn {
            background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%);
            border: 2px solid #e2e8f0;
            border-radius: 7px;
            padding: 0 16px;
            font-size: 13px;
            font-weight: 600;
            color: #4a5568;
            cursor: pointer;
            transition: all 0.3s;
            display: flex;
            align-items: center;
            gap: 6px;
            width: 100%;
            justify-content: center;
            height: 38px;
            box-sizing: border-box;
        }

        .clear-search-btn:hover {
            background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
            border-color: #fca5a5;
            color: #dc2626;
            transform: translateY(-2px);
        }

        /* Responsive Design for Modern Filters */
        @media (max-width: 1200px) {
            .filter-item-modern {
                flex: 0 0 calc(50% - 10px);
            }
            
            .filter-item-modern[style*="flex: 0 0 280px"] {
                flex: 0 0 100% !important;
            }
        }

        @media (max-width: 968px) {
            .search-row {
                grid-template-columns: 1fr;
            }

            .filters-grid-modern {
                gap: 16px;
            }

            .filter-item-modern {
                flex: 0 0 100%;
            }
        }

        @media (max-width: 768px) {
            .container {
                padding: 24px;
            }

            h1 {
                font-size: 18px;
            }

            .search-filters-modern {
                padding: 16px 24px;
            }

            .filters-grid-modern {
                gap: 12px;
            }

            .campaigns-grid {
                grid-template-columns: 1fr;
            }

            .campaign-card {
                padding: 12px;
            }

            .jornadas-toolbar {
                flex-direction: column;
                align-items: stretch;
            }
            .jornadas-toolbar .filter-item-depto,
            .jornadas-toolbar .filter-item-town,
            .jornadas-toolbar .filter-item-month {
                flex: 1 1 100%;
                max-width: none;
                min-width: 0;
            }
            .jornadas-toolbar-actions {
                margin-left: 0;
                width: 100%;
            }
            .jornadas-toolbar-actions .action-buttons-container {
                flex-direction: column;
                width: 100%;
            }
            .action-buttons-container {
                margin-top: 10px;
                padding-top: 8px;
                gap: 14px;
                flex-direction: column;
            }

            .action-btn {
                width: 100%;
                max-width: 320px;
                height: 48px;
                padding: 12px 24px;
            }
            .action-menu {
                width: 100%;
                max-width: 320px;
                justify-content: center;
            }
            .action-menu .action-btn {
                width: 100%;
            }
            .action-menu-panel {
                left: 0;
                right: 0;
                transform: none;
                width: 100%;
            }

            .campaigns-table-container {
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                padding: 0 24px;
            }

            .campaigns-table {
                font-size: 12px;
                table-layout: auto;
            }

            .campaigns-table th,
            .campaigns-table td {
                padding: 10px 8px;
                font-size: 11px;
            }

            .campaigns-table .col-name,
            .campaigns-table .col-address,
            .campaigns-table .col-email {
                min-width: 120px;
            }

            .campaigns-table .col-datetime,
            .campaigns-table .col-responsible {
                min-width: 100px;
            }

            .campaigns-table .col-location,
            .campaigns-table .col-phone {
                min-width: 80px;
            }

        }

        /* Schedule Calendar Styles */
        .schedule-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
            padding-bottom: 15px;
            border-bottom: 1px solid #e5e5e5;
        }

        .schedule-nav {
            display: flex;
            align-items: center;
            gap: 6px;
            background: #ffffff;
            border: 2px solid #e2e8f0;
            border-radius: 7px;
            padding: 2px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
            height: 38px;
            box-sizing: border-box;
        }

        .schedule-nav-btn {
            background: transparent;
            border: none;
            border-radius: 5px;
            padding: 6px 8px;
            font-size: 14px;
            font-weight: 600;
            color: var(--primary);
            cursor: pointer;
            transition: all 0.2s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            min-width: 32px;
            height: 32px;
            flex-shrink: 0;
        }

        .schedule-nav-btn:hover {
            background: #f0f4ff;
            color: #5568d3;
            transform: scale(1.05);
        }

        .schedule-nav-btn:active {
            transform: scale(0.95);
        }

        .schedule-nav-btn svg {
            display: block;
        }

        .schedule-month-year {
            font-size: 13px;
            font-weight: 600;
            color: #2d3748;
            min-width: 140px;
            text-align: center;
            padding: 0 12px;
            background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
            border-radius: 5px;
            letter-spacing: 0.3px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;
            flex-shrink: 0;
        }

        .schedule-status-select {
            background: #fff;
            border: 1px solid #e5e5e5;
            border-radius: 6px;
            padding: 8px 12px;
            font-size: 14px;
            color: var(--text-primary);
            cursor: pointer;
            transition: all 0.2s ease;
            min-width: 200px;
        }

        .schedule-status-select:hover {
            border-color: var(--text-primary);
        }

        .schedule-status-select:focus {
            outline: none;
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
        }

        .calendar-container {
            background: #fff;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            overflow: hidden;
        }

        .calendar-weekdays {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            background: #f8f9fa;
            border-bottom: 1px solid #e5e5e5;
        }

        .calendar-weekday {
            padding: 12px;
            text-align: center;
            font-size: 12px;
            font-weight: 600;
            color: #666;
            text-transform: uppercase;
        }

        .calendar-days {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
        }

        .calendar-day {
            min-height: 80px;
            border-right: 1px solid #e5e5e5;
            border-bottom: 1px solid #e5e5e5;
            padding: 8px;
            position: relative;
            background: #fff;
            transition: background 0.2s ease;
        }

        .calendar-day:nth-child(7n) {
            border-right: none;
        }

        .calendar-day.other-month {
            background: #fafafa;
            color: #ccc;
        }

        .calendar-day.today {
            background: #e3f2fd;
            font-weight: 600;
        }

        .calendar-day.has-events {
            background: #f5f5f5;
        }

        .calendar-day-number {
            font-size: 13px;
            font-weight: 500;
            margin-bottom: 4px;
            color: var(--text-primary);
        }

        .calendar-day.other-month .calendar-day-number {
            color: #ccc;
        }

        .calendar-events {
            display: flex;
            flex-direction: column;
            gap: 2px;
            margin-top: 4px;
        }

        .calendar-event {
            font-size: 10px;
            padding: 2px 4px;
            border-radius: 3px;
            cursor: pointer;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            transition: all 0.2s ease;
        }

        .calendar-event:hover {
            transform: scale(1.05);
            z-index: 10;
            position: relative;
        }

        .calendar-event.status-active {
            background: #e8f5e9;
            color: #2e7d32;
            border-left: 2px solid #2e7d32;
        }

        .calendar-event.status-pending {
            background: #fef3c7;
            color: #92400e;
            border-left: 2px solid #92400e;
        }

        .calendar-event.status-completed {
            background: #e3f2fd;
            color: #1976d2;
            border-left: 2px solid #1976d2;
        }

        .calendar-event.status-cancelled {
            background: #ffebee;
            color: #c62828;
            border-left: 2px solid #c62828;
        }

        .day-details {
            margin-top: 20px;
            background: #fff;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            padding: 20px;
            display: none;
        }

        .day-details.active {
            display: block;
        }

        .day-details-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
            padding-bottom: 15px;
            border-bottom: 1px solid #e5e5e5;
        }

        .day-details-title {
            font-size: 16px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .day-details-close {
            background: none;
            border: none;
            font-size: 20px;
            cursor: pointer;
            color: #666;
            padding: 0;
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .day-details-close:hover {
            color: var(--text-primary);
        }

        .day-events-list {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .day-event-item {
            padding: 12px;
            border: 1px solid #e5e5e5;
            border-radius: 6px;
            background: #fafafa;
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .day-event-item:hover {
            border-color: var(--text-primary);
            background: #fff;
        }

        /* Schedule List Styles */
        .schedule-list-container {
            background: #fff;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            overflow: hidden;
        }

        .schedule-list-content {
            padding: 0;
        }

        .schedule-list-group {
            border-bottom: 1px solid #e5e5e5;
        }

        .schedule-list-group:last-child {
            border-bottom: none;
        }

        .schedule-list-date-header {
            background: #f8f9fa;
            padding: 12px 16px;
            font-size: 14px;
            font-weight: 600;
            color: var(--text-primary);
            border-bottom: 1px solid #e5e5e5;
        }

        .schedule-list-date-header.today {
            background: #e3f2fd;
            color: #1976d2;
        }

        .schedule-list-events {
            padding: 0;
        }

        .schedule-list-item {
            padding: 16px;
            border-bottom: 1px solid #f0f0f0;
            cursor: pointer;
            transition: all 0.2s ease;
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 16px;
        }

        .schedule-list-item:last-child {
            border-bottom: none;
        }

        .schedule-list-item:hover {
            background: #fafafa;
        }

        .schedule-list-item-content {
            flex: 1;
        }

        .schedule-list-item-title {
            font-size: 15px;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 6px;
        }

        .schedule-list-item-meta {
            font-size: 12px;
            color: #666;
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin-top: 4px;
        }

        .schedule-list-item-meta span {
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .schedule-list-item-status {
            font-size: 11px;
            padding: 6px 12px;
            border-radius: 4px;
            font-weight: 600;
            white-space: nowrap;
            flex-shrink: 0;
        }

        .schedule-list-item-status.status-active {
            background: #e8f5e9;
            color: #2e7d32;
        }

        .schedule-list-item-status.status-pending {
            background: #fef3c7;
            color: #92400e;
        }

        .schedule-list-item-status.status-completed {
            background: #e3f2fd;
            color: #1976d2;
        }

        .schedule-list-item-status.status-cancelled {
            background: #ffebee;
            color: #c62828;
        }

        .schedule-list-item-status.status-other {
            background: #f5f5f5;
            color: #666;
        }

        .schedule-list-empty {
            padding: 60px 20px;
            text-align: center;
            color: #999;
        }

        .schedule-list-empty-icon {
            font-size: 48px;
            margin-bottom: 16px;
        }

        .schedule-list-empty-text {
            font-size: 16px;
            font-weight: 500;
            color: #666;
            margin-bottom: 8px;
        }

        .schedule-list-empty-subtext {
            font-size: 14px;
            color: #999;
        }

        /* Schedule Table Styles (Excel-like) */
        .schedule-table-container {
            background: #fff;
            border: 1px solid #e5e5e5;
            border-radius: 8px;
            overflow: auto;
        }

        .schedule-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 14px;
        }

        .schedule-table thead {
            background: #f8f9fa;
            position: sticky;
            top: 0;
            z-index: 10;
        }

        .schedule-table th {
            padding: 12px 16px;
            text-align: left;
            font-weight: 600;
            color: var(--text-primary);
            border-bottom: 2px solid #e5e5e5;
            border-right: 1px solid #e5e5e5;
            white-space: nowrap;
            font-size: 13px;
            text-transform: uppercase;
        }

        .schedule-table th:last-child {
            border-right: none;
        }

        .schedule-table tbody tr {
            border-bottom: 1px solid #e5e5e5;
            transition: background 0.2s ease;
        }

        .schedule-table tbody tr:hover {
            background: #f8f9fa;
            cursor: pointer;
        }

        .schedule-table tbody tr:last-child {
            border-bottom: none;
        }

        .schedule-table td {
            padding: 12px 16px;
            border-right: 1px solid #e5e5e5;
            color: #333;
            vertical-align: top;
        }

        .schedule-table td:last-child {
            border-right: none;
        }

        .schedule-table-empty {
            padding: 60px 20px;
            text-align: center;
            color: #999;
        }

        .schedule-table-empty-icon {
            font-size: 48px;
            margin-bottom: 16px;
        }

        .schedule-table-empty-text {
            font-size: 16px;
            font-weight: 500;
            color: #666;
            margin-bottom: 8px;
        }

        .schedule-table-empty-subtext {
            font-size: 14px;
            color: #999;
        }
        
        /* Modern Pagination Styles */
        .pagination-container {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 6px;
            margin-top: 24px;
            padding: 20px;
            background: linear-gradient(to bottom, #ffffff 0%, #f8fafc 100%);
            border-top: 1px solid rgba(226, 232, 240, 0.6);
            border-radius: 0 0 14px 14px;
        }
        
        .pagination-button {
            min-width: 40px;
            height: 40px;
            padding: 0 16px;
            border: none;
            background: #ffffff;
            color: #475569;
            border-radius: 10px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
            position: relative;
            overflow: hidden;
        }
        
        .pagination-button::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
            transition: left 0.5s;
        }
        
        .pagination-button:hover:not(:disabled)::before {
            left: 100%;
        }
        
        .pagination-button:hover:not(:disabled) {
            background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
            color: #ffffff;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3), 0 2px 4px rgba(99, 102, 241, 0.2);
        }
        
        .pagination-button:active:not(:disabled) {
            transform: translateY(0);
            box-shadow: 0 2px 4px rgba(99, 102, 241, 0.2);
        }
        
        .pagination-button:disabled {
            opacity: 0.4;
            cursor: not-allowed;
            background: #f1f5f9;
            color: #94a3b8;
            box-shadow: none;
        }
        
        .pagination-button svg {
            transition: transform 0.3s ease;
        }
        
        .pagination-button:hover:not(:disabled) svg {
            transform: scale(1.1);
        }
        
        .pagination-info {
            font-size: 14px;
            font-weight: 600;
            color: #475569;
            margin: 0 20px;
            padding: 8px 16px;
            background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
            border-radius: 10px;
            border: 1px solid rgba(226, 232, 240, 0.8);
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
            letter-spacing: 0.3px;
        }
        
        .pagination-info span {
            display: inline-block;
            min-width: 20px;
            text-align: center;
        }
        
        @media (max-width: 768px) {
            .pagination-container {
                padding: 16px 12px;
                gap: 4px;
            }
            
            .pagination-button {
                min-width: 36px;
                height: 36px;
                padding: 0 12px;
                font-size: 13px;
            }
            
            .pagination-info {
                font-size: 12px;
                margin: 0 12px;
                padding: 6px 12px;
            }
        }
