:root {
    --bg: #f4f6f8;
    --panel: #ffffff;
    --border: #e4e9ef;
    --text: #1f2937;
    --muted: #6b7280;
    --primary: #1f4f8a;
    --primary-dark: #173b67;
    --sidebar: #17202b;
    --sidebar-hover: #212d3b;
    --sidebar-active: #2a3a4b;
    --success-bg: #eaf8ef;
    --success-text: #247443;
    --warning-bg: #fff5dc;
    --warning-text: #9a6c00;
    --danger-bg: #fdecec;
    --danger-text: #b33c3c;
    --shadow: 0 8px 24px rgba(20, 30, 45, 0.08);
    --radius: 12px;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    min-height: 100%;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    color: var(--text);
    background: var(--bg);
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

.login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background:
        radial-gradient(circle at top left, rgba(31, 79, 138, .12), transparent 36%),
        linear-gradient(135deg, #eef3f8, #f7f8fa);
}

.login-wrapper {
    width: 100%;
    max-width: 430px;
}

.login-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 34px;
    box-shadow: var(--shadow);
}

.login-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px;
}

.brand-logo {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--primary);
    color: white;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .4px;
}

.brand-logo.small {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    font-size: 14px;
}

.login-brand h1,
.page-header h1,
.section-title-row h2,
.modal-header h2,
.welcome-panel h2 {
    margin: 0;
}

.login-brand p,
.page-header p,
.section-title-row p,
.modal-header p,
.welcome-panel p {
    margin: 4px 0 0;
    color: var(--muted);
}

.login-form {
    display: grid;
    gap: 18px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.form-group label {
    font-size: 14px;
    font-weight: 600;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    border: 1px solid #d4dbe4;
    border-radius: 9px;
    padding: 11px 12px;
    outline: none;
    background: #fff;
    color: var(--text);
    transition: border-color .15s, box-shadow .15s;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(31, 79, 138, .10);
}

.password-box {
    position: relative;
}

.password-box input {
    padding-right: 78px;
}

.password-toggle {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--primary);
    font-weight: 600;
}

.btn {
    border: 0;
    border-radius: 9px;
    padding: 10px 16px;
    font-weight: 600;
    transition: transform .12s, background .15s;
}

.btn:active {
    transform: translateY(1px);
}

.btn-primary {
    background: var(--primary);
    color: white;
}

.btn-primary:hover {
    background: var(--primary-dark);
}

.btn-secondary {
    background: #eef2f6;
    color: #344054;
}

.btn-secondary:hover {
    background: #e4e9ef;
}

.btn-block {
    width: 100%;
}

.btn-small {
    padding: 7px 10px;
    font-size: 13px;
}

.btn-icon {
    border: 0;
    background: transparent;
    color: #a33a3a;
    font-size: 22px;
    line-height: 1;
}

.alert {
    padding: 11px 13px;
    border-radius: 9px;
    margin-bottom: 18px;
    font-size: 14px;
}

.alert-error {
    background: var(--danger-bg);
    color: var(--danger-text);
}

.login-note {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}

.app-body {
    min-height: 100vh;
    background: var(--bg);
}

.app-shell {
    min-height: 100vh;
}

.topbar {
    position: fixed;
    top: 0;
    left: 240px;
    right: 0;
    height: 68px;
    background: white;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 26px;
    z-index: 20;
}

.topbar-left,
.topbar-user {
    display: flex;
    align-items: center;
    gap: 12px;
}

.topbar-title {
    font-weight: 700;
}

.menu-toggle {
    display: none;
    width: 38px;
    height: 38px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
}

.user-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #e7eef7;
    color: var(--primary);
    display: grid;
    place-items: center;
    font-weight: 800;
}

.user-info {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.user-info strong {
    font-size: 14px;
}

.user-info small {
    color: var(--muted);
    margin-top: 3px;
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 240px;
    background: var(--sidebar);
    color: #dbe4ee;
    display: flex;
    flex-direction: column;
    z-index: 30;
}

.sidebar-brand {
    height: 68px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.sidebar-brand > div:last-child {
    display: flex;
    flex-direction: column;
}

.sidebar-brand span {
    color: #8fa1b4;
    font-size: 12px;
    margin-top: 2px;
}

.sidebar-nav {
    padding: 16px 10px;
    display: grid;
    gap: 4px;
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .2) transparent;
}

.nav-item {
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 13px;
    border-radius: 9px;
    color: #cbd6e2;
}

.nav-item:hover {
    background: var(--sidebar-hover);
    color: white;
}

.nav-item.active {
    background: var(--sidebar-active);
    color: white;
    box-shadow: inset 3px 0 0 #6fa7e5;
}

.nav-icon {
    width: 22px;
    flex: 0 0 22px;
    text-align: center;
    font-size: 18px;
}

.nav-group {
    margin: 0;
}

.nav-group > summary {
    list-style: none;
}

.nav-group > summary::-webkit-details-marker {
    display: none;
}

.nav-group-toggle {
    cursor: pointer;
    user-select: none;
}

.nav-group-toggle .nav-chevron {
    margin-left: auto;
    font-size: 23px;
    line-height: 1;
    color: #8fa1b4;
    transition: transform .18s ease, color .18s ease;
}

.nav-group[open] > .nav-group-toggle .nav-chevron {
    transform: rotate(90deg);
    color: #dbeafe;
}

.nav-group.has-active > .nav-group-toggle {
    color: #fff;
    background: rgba(54, 112, 178, .2);
}

.nav-submenu {
    display: grid;
    gap: 3px;
    margin: 3px 0 5px 23px;
    padding-left: 8px;
    border-left: 1px solid rgba(143, 161, 180, .28);
}

.nav-subitem {
    min-height: 38px;
    padding: 0 10px;
    gap: 8px;
    font-size: 13px;
}

.nav-subitem .nav-icon {
    width: 19px;
    flex-basis: 19px;
    font-size: 15px;
}

.sidebar-footer {
    margin-top: auto;
    padding: 12px 10px 16px;
    border-top: 1px solid rgba(255, 255, 255, .07);
}

.nav-logout {
    color: #f0caca;
}

.main-content {
    margin-left: 240px;
    padding: 96px 28px 30px;
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 22px;
}

.page-header h1 {
    font-size: 26px;
}

.page-header p {
    font-size: 14px;
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
}

.module-card,
.content-card,
.welcome-panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 3px 14px rgba(20, 30, 45, .04);
}

.module-card {
    min-height: 150px;
    padding: 20px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 15px;
    transition: transform .15s, box-shadow .15s, border-color .15s;
}

.module-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow);
    border-color: #cbd5e1;
}

.module-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #edf3fa;
    color: var(--primary);
    font-weight: 800;
}

.module-info h2 {
    margin: 0 0 7px;
    font-size: 17px;
}

.module-info p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.module-arrow {
    font-size: 22px;
    color: #9aa5b1;
}

.welcome-panel {
    padding: 26px;
}

.eyebrow {
    display: inline-block;
    color: var(--primary);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-bottom: 8px;
}

.content-card {
    padding: 20px;
    margin-bottom: 18px;
}

.section-title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-bottom: 18px;
}

.section-title-row h2 {
    font-size: 18px;
}

.search-row {
    display: flex;
    align-items: end;
    gap: 12px;
}

.grow {
    flex: 1;
}

.table-wrapper {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.data-table th {
    text-align: left;
    color: #576474;
    background: #f8fafc;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .35px;
}

.data-table th,
.data-table td {
    padding: 12px 11px;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

.data-table tbody tr:hover {
    background: #fafcff;
}

.text-right {
    text-align: right !important;
}

.badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.badge-success {
    background: var(--success-bg);
    color: var(--success-text);
}

.badge-warning {
    background: var(--warning-bg);
    color: var(--warning-text);
}

.form-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 16px;
}

.form-grid .full {
    grid-column: 1 / -1;
}

.order-footer {
    display: flex;
    justify-content: flex-end;
    align-items: end;
    gap: 24px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}

.order-total {
    display: flex;
    flex-direction: column;
    text-align: right;
}

.order-total span {
    color: var(--muted);
    font-size: 13px;
}

.order-total strong {
    font-size: 22px;
    margin-top: 3px;
}

.modal {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .48);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 100;
}

.modal.show {
    display: flex;
}

.modal-dialog {
    width: 100%;
    max-width: 650px;
    background: white;
    border-radius: 14px;
    box-shadow: 0 20px 55px rgba(0, 0, 0, .22);
    overflow: hidden;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px 22px;
    border-bottom: 1px solid var(--border);
}

.modal-close {
    border: 0;
    background: transparent;
    font-size: 26px;
    color: #7a8491;
}

.modal-body {
    padding: 22px;
}

.detail-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 24px;
}

.detail-summary > div {
    background: #f8fafc;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px;
    display: flex;
    flex-direction: column;
}

.detail-summary span {
    font-size: 12px;
    color: var(--muted);
}

.detail-summary strong {
    margin-top: 5px;
}

.movement-list {
    display: grid;
    gap: 10px;
}

.movement-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 9px;
    padding: 12px 14px;
}

.movement-item > div {
    display: flex;
    flex-direction: column;
}

.movement-item span {
    color: var(--muted);
    font-size: 12px;
    margin-top: 3px;
}

.sidebar-overlay {
    display: none;
}

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

@media (max-width: 820px) {
    .sidebar {
        transform: translateX(-100%);
        transition: transform .2s ease;
    }

    .sidebar.open {
        transform: translateX(0);
    }

    .topbar {
        left: 0;
    }

    .main-content {
        margin-left: 0;
        padding: 90px 16px 22px;
    }

    .menu-toggle {
        display: block;
    }

    .sidebar-overlay.show {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .4);
        z-index: 25;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-grid .full {
        grid-column: auto;
    }
}

@media (max-width: 640px) {
    .login-card {
        padding: 25px 20px;
    }

    .search-row,
    .section-title-row,
    .order-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .detail-summary {
        grid-template-columns: 1fr;
    }

    .topbar {
        padding: 0 14px;
    }

    .user-info {
        display: none;
    }

    .content-card {
        padding: 15px;
    }
}

.hidden{display:none!important}.client-search{position:relative;max-width:760px}.search-results{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:50;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);max-height:330px;overflow-y:auto}.search-results.show{display:block}.client-result{width:100%;border:0;border-bottom:1px solid var(--border);background:#fff;padding:12px 14px;text-align:left;display:flex;flex-direction:column;gap:4px}.client-result:hover{background:#f7f9fc}.client-result span{color:var(--muted);font-size:13px}.search-message,.empty-table{padding:18px!important;text-align:center!important;color:var(--muted)}.error-text{color:var(--danger-text)!important}.client-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:18px}.client-card h2{margin:2px 0 10px}.client-meta{display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--muted);font-size:13px}.client-meta strong{color:var(--text)}.modal-large{max-width:1050px;max-height:92vh;overflow-y:auto}.modal-large .detail-summary{grid-template-columns:repeat(6,1fr)}.loading-state{padding:36px;text-align:center;color:var(--muted)}.section-spacer{margin-top:28px}.movement-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.movement-columns h4{margin:0 0 9px}.movement-empty{border:1px dashed var(--border);border-radius:9px;padding:16px;text-align:center;color:var(--muted);font-size:13px}@media(max-width:1000px){.modal-large .detail-summary{grid-template-columns:repeat(3,1fr)}.movement-columns{grid-template-columns:1fr}}@media(max-width:640px){.client-card{flex-direction:column;align-items:stretch}.modal-large .detail-summary{grid-template-columns:1fr 1fr}}

.table-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:14px 0 18px;border-top:1px solid var(--border)}
.table-toolbar-left{display:flex;align-items:flex-end;gap:12px}
.toolbar-field{display:flex;flex-direction:column;gap:6px}
.toolbar-field label{font-size:12px;font-weight:700;color:var(--muted)}
.toolbar-field select,.toolbar-field input{height:39px;border:1px solid #d4dbe4;border-radius:8px;background:#fff;padding:0 11px;outline:none;color:var(--text)}
.toolbar-field select:focus,.toolbar-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(31,79,138,.10)}
.compact-field select{min-width:82px}
.search-invoices{width:min(100%,360px)}
.search-invoices input{width:100%}
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px}
.pagination-info{font-size:13px;color:var(--muted)}
.pagination-buttons{display:flex;align-items:center;gap:5px}
.page-btn{min-width:35px;height:35px;padding:0 9px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);font-weight:600}
.page-btn:hover:not(:disabled){border-color:#b8c5d3;background:#f6f8fa}
.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}
.page-btn:disabled{opacity:.4;cursor:default}
.page-dots{padding:0 4px;color:var(--muted)}
@media(max-width:700px){
 .table-toolbar{flex-direction:column;align-items:stretch}
 .table-toolbar-left{width:100%}
 .table-toolbar-left .toolbar-field{flex:1}
 .search-invoices{width:100%}
 .table-pagination{flex-direction:column;align-items:flex-start}
 .pagination-buttons{flex-wrap:wrap}
}

.inventory-search-row{display:flex;align-items:flex-end;gap:12px}.inventory-table .inventory-description{min-width:250px;white-space:normal}.stock-ok,.stock-empty{display:inline-block;min-width:62px;padding:4px 7px;border-radius:7px;font-weight:700}.stock-ok{background:var(--success-bg);color:var(--success-text)}.stock-empty{background:var(--danger-bg);color:var(--danger-text)}@media(max-width:640px){.inventory-search-row{flex-direction:column;align-items:stretch}}

/* ===== Detalle de producto ===== */
.inventory-row{cursor:pointer}
.inventory-row:hover{background:#f7f9fc}
.product-link{border:0;background:none;padding:0;color:var(--primary);font:inherit;font-weight:700;text-align:left;cursor:pointer}
.product-modal-dialog{max-width:1100px}
.product-detail-grid{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:30px}
.product-gallery{min-width:0}
.product-main-image{height:350px;border:1px solid var(--border);border-radius:12px;background:#f8fafc;display:flex;align-items:center;justify-content:center;overflow:hidden}
.product-main-image img{width:100%;height:100%;object-fit:contain}
.product-no-image{color:var(--muted);font-weight:600}
.product-thumbnails{display:flex;gap:8px;overflow-x:auto;padding-top:10px}
.product-thumb{width:66px;height:66px;flex:0 0 66px;padding:3px;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer}
.product-thumb.active{border:2px solid var(--primary)}
.product-thumb img{width:100%;height:100%;object-fit:cover;border-radius:5px}
.product-information h2{margin:0 0 18px;font-size:24px}
.product-data-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.product-data-grid>div,.product-stock-grid>div{padding:12px;border:1px solid var(--border);border-radius:9px;background:#fff}
.product-data-grid span,.product-stock-grid span,.product-price-box span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
.product-data-grid strong,.product-stock-grid strong{font-size:14px}
.product-stock-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.product-stock-grid strong{font-size:18px}
.product-price-box{margin-top:16px;padding:16px 18px;border-radius:10px;background:#f5f8fc;border:1px solid var(--border)}
.product-price-box strong{display:block;font-size:27px;color:var(--primary)}
.product-price-box small{display:block;margin-top:4px;color:var(--muted)}
.product-tech-sheet{margin-top:28px;padding-top:22px;border-top:1px solid var(--border)}
.product-tech-sheet h3{margin:0 0 12px}
.product-synopsis{white-space:pre-wrap;line-height:1.65;color:var(--text)}
@media(max-width:800px){
 .product-detail-grid{grid-template-columns:1fr}
 .product-main-image{height:300px}
}
@media(max-width:520px){
 .product-data-grid{grid-template-columns:1fr}
 .product-stock-grid{grid-template-columns:1fr}
}

/* ===== Crear proforma ===== */
.product-search-list{margin-top:16px;display:flex;flex-direction:column;gap:8px}.pf-product{display:grid;grid-template-columns:minmax(240px,1fr) 100px 135px 90px auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff}.pf-product-main{display:flex;flex-direction:column;gap:4px}.pf-product-main span,.pf-product-stock span,.pf-product-price span{font-size:12px;color:var(--muted)}.pf-product-stock,.pf-product-price{display:flex;flex-direction:column}.pf-qty{height:39px;width:90px;border:1px solid var(--border);border-radius:8px;padding:0 8px;text-align:right}.proforma-bottom{display:grid;grid-template-columns:1fr 330px;gap:30px;margin-top:24px;align-items:start}.proforma-observaciones textarea{width:100%}.proforma-totals{border:1px solid var(--border);border-radius:12px;padding:18px;background:#f8fafc}.proforma-totals>div{display:flex;justify-content:space-between;gap:20px;padding:7px 0}.proforma-totals .grand-total{margin-top:7px;padding-top:14px;border-top:1px solid var(--border);font-size:20px}.proforma-totals .grand-total strong{color:var(--primary)}.proforma-totals .btn{margin-top:14px}@media(max-width:900px){.pf-product{grid-template-columns:1fr 100px 120px}.pf-product .pf-qty,.pf-product .pf-add{grid-row:2}.proforma-bottom{grid-template-columns:1fr}}@media(max-width:600px){.pf-product{grid-template-columns:1fr 1fr}.pf-product-main{grid-column:1/-1}.pf-product .pf-add{width:100%}}

/* ===== Proforma: paginación, negativos y toast ===== */
.pf-products-pagination{padding-top:12px}.stock-negative{color:var(--danger-text)}
.app-toast{position:fixed;right:24px;bottom:24px;z-index:200;max-width:420px;padding:14px 18px;border-radius:10px;background:#17365d;color:#fff;font-weight:600;box-shadow:0 12px 32px rgba(15,23,42,.25);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}.app-toast.show{opacity:1;transform:translateY(0)}
@media(max-width:640px){.app-toast{left:14px;right:14px;bottom:14px;max-width:none}}

.pf-product .pf-info{white-space:nowrap}
@media(max-width:900px){.pf-product{flex-wrap:wrap}.pf-product-main{min-width:240px;flex:1 1 100%}}

/* ===== Catálogo visual compartido: Inventario / Proforma ===== */
.catalog-product-list,.product-search-list{display:flex;flex-direction:column;gap:10px}
.catalog-product-card{display:grid;grid-template-columns:120px minmax(260px,1fr) 105px 105px 105px 145px auto;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff}
.catalog-product-card:hover{border-color:#c7d3e0;box-shadow:0 3px 12px rgba(15,23,42,.05)}
.catalog-thumb{width:105px;height:105px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:#f8fafc;overflow:hidden}
.catalog-thumb img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.catalog-main{display:flex;flex-direction:column;gap:5px;min-width:0}
.catalog-title{font-size:16px;font-weight:700;line-height:1.3;color:var(--text)}
.catalog-main span,.catalog-main small{font-size:12px;color:var(--muted)}
.catalog-metric{display:flex;flex-direction:column;gap:3px}
.catalog-metric span{font-size:12px;color:var(--muted)}
.catalog-metric strong{font-size:16px}
.catalog-metric small{font-size:11px;color:var(--muted)}
.stock-positive{color:#16803a}
.catalog-info{white-space:nowrap}
.inventory-row{cursor:default}
.inventory-row .product-link{cursor:pointer}
.pf-product{grid-template-columns:120px minmax(260px,1fr) 115px 145px 90px auto auto}
.pf-product .pf-add{width:auto;min-width:110px}
.pf-product .pf-info{width:auto}
@media(max-width:1100px){
 .catalog-product-card,.pf-product{grid-template-columns:95px minmax(220px,1fr) 105px 125px}
 .catalog-thumb{width:85px;height:85px}
 .inventory-row .catalog-metric:nth-of-type(3),.inventory-row .catalog-metric:nth-of-type(4){display:none}
 .catalog-info,.pf-product .pf-qty,.pf-product .pf-info,.pf-product .pf-add{grid-row:2}
 .catalog-info{grid-column:4}
 .pf-product .pf-qty{grid-column:2}
 .pf-product .pf-info{grid-column:3}
 .pf-product .pf-add{grid-column:4}
}
@media(max-width:700px){
 .catalog-product-card,.pf-product{grid-template-columns:78px 1fr;gap:10px}
 .catalog-thumb{width:70px;height:70px;grid-row:1/3}
 .catalog-main{grid-column:2}
 .catalog-metric{grid-row:auto}
 .catalog-info,.pf-product .pf-qty,.pf-product .pf-info,.pf-product .pf-add{grid-column:auto;grid-row:auto}
 .pf-product .pf-add,.pf-product .pf-info{width:100%}
}

.app-toast.toast-error{background:#b42318!important;color:#fff!important;border-color:#b42318!important;}

/* Mantener sesión abierta */
.remember-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:4px 0 2px;cursor:pointer;color:var(--text)}
.remember-row span:first-child{display:flex;flex-direction:column;gap:2px}
.remember-row strong{font-size:13px;font-weight:600}
.remember-row small{font-size:11px;color:var(--muted)}
.switch-control{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 46px}
.switch-control input{opacity:0;width:0;height:0;position:absolute}
.switch-slider{position:absolute;inset:0;border-radius:999px;background:#cbd5e1;transition:.2s}
.switch-slider:before{content:'';position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.2s}
.switch-control input:checked + .switch-slider{background:var(--primary)}
.switch-control input:checked + .switch-slider:before{transform:translateX(20px)}


/* ========================= CLIENTES ========================= */
.clientes-toolbar{align-items:end}.clientes-toolbar .grow{flex:1;min-width:280px}.clientes-table tbody tr.cliente-row{cursor:pointer}.clientes-table tbody tr.cliente-row:hover{background:#f7f9fc}.cliente-modal-dialog{max-width:780px}.cliente-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.cliente-form-grid .span-2{grid-column:span 2}.cliente-form-grid textarea{resize:vertical}.check-line{display:flex!important;align-items:center;gap:9px;min-height:42px;font-weight:500!important}.check-line input{width:17px;height:17px}.status-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700}.status-success{background:#e9f8ef;color:#247a46}.status-warning{background:#fff5df;color:#9a6700}.status-danger{background:#fdecec;color:#b42318}.btn-icon{width:34px;height:34px;border:1px solid #d9e0e8;border-radius:8px;background:#fff;cursor:pointer;font-size:16px}.btn-icon:hover{background:#f2f6fa}.text-right{text-align:right}@media(max-width:700px){.cliente-form-grid{grid-template-columns:1fr}.cliente-form-grid .span-2{grid-column:span 1}.clientes-toolbar{align-items:stretch}.clientes-toolbar .grow{min-width:0}}

/* ========================= CRM KANBAN ========================= */
.crm-main{overflow-x:hidden}.crm-toolbar{display:flex;gap:16px;align-items:end;margin-bottom:18px}.crm-toolbar .grow{flex:1}.crm-board{display:flex;gap:16px;align-items:flex-start;overflow-x:auto;padding:2px 2px 18px;min-height:560px}.crm-column{flex:0 0 290px;background:#f5f7fa;border:1px solid var(--border);border-radius:13px;min-height:500px}.crm-column>header{display:flex;justify-content:space-between;align-items:center;padding:14px 15px;border-bottom:1px solid var(--border)}.crm-column>header span{background:#e5ebf2;border-radius:999px;min-width:26px;padding:3px 8px;text-align:center;font-size:12px}.crm-drop{padding:10px;min-height:445px}.crm-column.drag-over{outline:2px solid var(--primary);outline-offset:-2px}.crm-card{background:#fff;border:1px solid var(--border);border-radius:11px;padding:13px;margin-bottom:10px;cursor:pointer;box-shadow:0 2px 7px rgba(15,23,42,.035)}.crm-card:hover{border-color:#bdcad8;box-shadow:0 5px 16px rgba(15,23,42,.08)}.crm-card-top,.crm-card-foot{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.crm-origin{font-weight:700;color:var(--primary)}.crm-card h3{font-size:14px;margin:9px 0 6px}.crm-contact{display:block;font-size:13px}.crm-card>small{display:block;color:var(--muted);margin-top:2px}.crm-card-money{font-size:17px;font-weight:800;margin:13px 0}.crm-card-foot{border-top:1px solid #edf1f5;padding-top:9px;flex-direction:column}.crm-modal-dialog{max-width:820px}.crm-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border)}.crm-detail-grid>div{display:flex;flex-direction:column;gap:4px}.crm-detail-grid label{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:700}.crm-detail-grid small{color:var(--muted)}.crm-detail-grid .span-2{grid-column:span 2}.crm-detail-grid p{margin:0;white-space:pre-wrap}.crm-reassign{display:flex;gap:10px}.crm-reassign select{flex:1}.crm-activity{margin-top:22px}.crm-activity h3{margin-bottom:12px}.crm-activity form{display:grid;grid-template-columns:140px 1fr auto;gap:8px}.crm-timeline{margin-top:18px}.crm-activity-row{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid #edf1f5}.crm-activity-row>span{font-size:11px;font-weight:700;color:var(--primary)}.crm-activity-row p{margin:4px 0}.crm-activity-row small{color:var(--muted)}@media(max-width:700px){.crm-toolbar{flex-direction:column;align-items:stretch}.crm-detail-grid{grid-template-columns:1fr}.crm-detail-grid .span-2{grid-column:span 1}.crm-activity form{grid-template-columns:1fr}.crm-column{flex-basis:270px}}

.crm-client-badge,.crm-prospect-badge{display:inline-block;width:max-content;margin-top:7px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}
.crm-client-badge{background:#e8f5ee;color:#237a4b}
.crm-prospect-badge{background:#fff3df;color:#9a6500}

.crm-commerce{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}
.crm-commerce .section-title-row{margin-bottom:14px}
.crm-commerce .catalog-product-card{grid-template-columns:72px minmax(180px,1fr) 90px 110px 78px auto auto}
.crm-cart{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}
.crm-commerce-locked{margin-top:20px;padding:15px 17px;border:1px dashed var(--border);border-radius:11px;background:#f8fafc}
.crm-commerce-locked p{margin:4px 0 0;color:var(--muted)}
@media(max-width:900px){.crm-commerce .catalog-product-card{grid-template-columns:64px 1fr}.crm-commerce .catalog-metric,.crm-commerce .crm-qty,.crm-commerce .btn{grid-column:auto}}

/* CRM Fase 4 */
.crm-modal-dialog{max-width:1180px}
.crm-commerce .catalog-product-card{grid-template-columns:78px minmax(250px,1fr) 92px 115px 86px 132px 92px;gap:12px}
.crm-commerce .catalog-thumb{width:78px;height:78px}
.crm-commerce .crm-qty{width:86px;min-width:0}
.crm-commerce .btn{white-space:normal}
.crm-status-filter{min-width:150px}
.crm-linked-proforma{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:14px 0 20px;padding:13px 15px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}
.modal-footer{padding-left:10px!important;padding-right:10px!important;padding-bottom:10px!important}
@media(max-width:1050px){.crm-commerce .catalog-product-card{grid-template-columns:72px minmax(220px,1fr) 90px 110px}.crm-commerce .crm-qty,.crm-commerce .btn{width:100%}}

.crm-proforma-created{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:10px}
.crm-proforma-created>div{padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}
.crm-proforma-created span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.crm-proforma-created strong{font-size:16px}
.crm-proforma-note{margin:12px 0 0;color:var(--muted)}
@media(max-width:760px){.crm-proforma-created{grid-template-columns:1fr}}

/* CRM Fase 6 */
.crm-card-locked{cursor:pointer}
.crm-proforma-lines{margin-top:16px}
.crm-proforma-lines .data-table{min-width:760px}

/* CRM Fase 7 - Conversaciones */
.crm-conversation{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}
.crm-channel-badge{display:inline-flex;margin:6px 0 12px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:#f8fafc;font-size:12px}
.crm-message-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto;padding:10px 0}
.crm-message{max-width:78%;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:#fff}
.crm-message.out{align-self:flex-end;background:#f8fafc}
.crm-message.in{align-self:flex-start}
.crm-message small{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.crm-conversation-note{margin:10px 0 0;color:var(--muted);font-size:12px}

/* CRM Fase 8 - WhatsApp Meta */
.crm-message-compose{display:flex;gap:10px;align-items:flex-end;margin-top:10px}
/* Fase 28.3.5: cuadro de respuesta con lenguaje visual ALTCOM. */
.crm-message-compose textarea#crmMensajeWa{
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 58px;
  max-height: 220px;
  padding: 12px 14px;
  box-sizing: border-box;
  border: 1px solid #cbd8e8;
  border-radius: 12px;
  outline: none;
  background: #f8fbff;
  color: #24334a;
  font: inherit;
  font-size: 13px;
  line-height: 1.5;
  resize: vertical;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.crm-message-compose textarea#crmMensajeWa::placeholder{
  color: #8292a7;
  opacity: 1;
}
.crm-message-compose textarea#crmMensajeWa:hover:not(:disabled){
  border-color: #9ab6d6;
}
.crm-message-compose textarea#crmMensajeWa:focus{
  border-color: #2b619b;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(43,97,155,.12);
}
.crm-message-compose textarea#crmMensajeWa:disabled{
  background: #f1f4f8;
  color: #94a3b8;
  cursor: not-allowed;
}

.crm-message-compose .btn{min-width:95px}

/* CRM Fase 10 - Configuración Meta */
.crm-meta-info{margin-top:18px}
.crm-copy-row,.password-inline{display:flex;gap:10px;align-items:center}
.crm-copy-row input,.password-inline input{flex:1}
.form-help{margin-top:8px;color:var(--muted)}
.status-pill.muted{background:#f1f5f9;color:#64748b}


/* CRM Fase 9 - Conversación omnicanal */
.crm-channel-whatsapp .crm-channel-badge{background:#eafaf1;border-color:#b7e4c7;color:#176b3a}
.crm-channel-whatsapp .crm-channel-icon{color:#25d366;font-size:18px;line-height:1}
.crm-channel-whatsapp .crm-message.out{background:#dcf8c6;border-color:#c5e8ae}
.crm-channel-whatsapp .crm-message.in{background:#fff}
.crm-message-list{max-height:320px;overflow-y:auto;padding:12px;background:#f7f8f7;border:1px solid var(--border);border-radius:10px}
.crm-message-agent{display:block;margin-bottom:3px;font-size:11px;font-weight:700;color:#176b3a}
.crm-conversation-tools{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;padding:8px;border:1px solid var(--border);border-radius:9px;background:#fff}
.crm-tool-btn{border:1px solid var(--border);background:#fff;border-radius:7px;padding:7px 10px;cursor:pointer;font-size:12px}
.crm-tool-btn:disabled{opacity:.48;cursor:not-allowed}
.crm-doc-menu{position:relative}.crm-doc-dropdown{display:none;position:absolute;left:0;bottom:100%;min-width:175px;padding:5px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.12);z-index:20}
.crm-doc-dropdown.show{display:block}.crm-doc-dropdown button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:8px;border-radius:5px}.crm-doc-dropdown button:disabled{color:var(--muted)}
.crm-whatsapp-send{background:#128c7e;border-color:#128c7e}
@media(max-width:760px){.crm-message{max-width:90%}.crm-message-compose{align-items:stretch;flex-direction:column}.crm-message-compose .btn{width:100%}}

/* CRM Fase 9.1 - Alertas y tiempos de atención */
.crm-card-signals{display:flex;align-items:center;gap:7px}
.crm-new-message{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:50%;background:#25d366;color:#fff;font-size:10px;box-shadow:0 0 0 3px rgba(37,211,102,.14)}
.crm-card-new-message{border-color:#25d366;box-shadow:0 0 0 2px rgba(37,211,102,.13),0 5px 16px rgba(15,23,42,.08)}
.crm-open-time{display:inline-flex;align-items:center;gap:4px;margin:-4px 0 10px;font-size:11px;font-weight:700;color:#64748b}

/* CRM Fase 9.2 - mensajeria en vivo y canal */
.crm-origin{display:inline-flex;align-items:center;gap:5px}
.crm-origin .crm-whatsapp-svg{width:15px;height:15px;color:#25d366;flex:0 0 15px}
.crm-channel-badge{align-items:center;gap:7px}
.crm-whatsapp-svg{width:19px;height:19px;color:#25d366;flex:0 0 19px}
.crm-channel-letter{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;font-weight:800}
.crm-message small{display:flex;align-items:center;justify-content:flex-end;gap:5px}
.crm-message.in small{justify-content:flex-start}
.crm-msg-state{display:inline-flex;align-items:center}
.crm-msg-check{font-size:13px;font-weight:800;letter-spacing:-3px;padding-right:3px;color:#667085}
.crm-msg-check.read{color:#34b7f1}
.crm-msg-check.sending{letter-spacing:0;color:#98a2b3}
.crm-msg-check.error{letter-spacing:0;color:#d92d20}
.crm-message-pending{opacity:.72}
.crm-message-error{border-color:#f1aeb5!important}
.crm-wa-window{margin:8px 0 10px;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600}.crm-wa-window.open{background:#e9f8ef;color:#16723a}.crm-wa-window.closed{background:#fff3e6;color:#9a5700}.crm-quick-box{display:none;max-height:220px;overflow:auto;border:1px solid #dfe5e8;border-radius:10px;background:#fff;margin:6px 0;box-shadow:0 8px 24px rgba(0,0,0,.08)}.crm-quick-box.show{display:block}.crm-quick-item{width:100%;display:grid;grid-template-columns:100px 1fr auto;gap:10px;align-items:center;border:0;border-bottom:1px solid #eef1f3;background:#fff;padding:9px 12px;text-align:left;cursor:pointer}.crm-quick-item:hover{background:#f4fbf7}.crm-quick-item strong{color:#16854b}.crm-quick-item small{color:#7a858c}.crm-template-send{padding:12px;border:1px solid #e4e8eb;border-radius:10px;background:#fafbfc}.crm-template-row{display:flex;gap:10px;margin-top:10px}.crm-template-row select{flex:1}.crm-template-preview{margin-top:10px;padding:10px;border-radius:8px;background:#fff}.crm-template-preview p{white-space:pre-wrap;margin:6px 0 0}.config-actions{display:flex;justify-content:flex-end;margin-top:12px}

/* CRM Fase 9.4 - Cola y colaboración */
.crm-send-error{margin-top:6px;padding-top:5px;border-top:1px solid rgba(217,45,32,.18);font-size:11px;color:#b42318}.crm-retry-msg{border:0;background:transparent;color:#b42318;font-weight:700;cursor:pointer}.crm-note-btn{background:#fff8db;border-color:#f1d97a}.crm-note-compose{display:flex;gap:8px;margin-top:8px;padding:9px;background:#fff8db;border:1px solid #f1d97a;border-radius:9px}.crm-note-compose textarea{flex:1}.crm-internal-note{align-self:center;width:min(88%,650px);padding:9px 12px;border:1px solid #f1d97a;border-radius:9px;background:#fff8db;color:#604b00}.crm-internal-note strong{display:block;font-size:11px;margin-bottom:3px}.crm-internal-note small{display:block;margin-top:4px;color:#8a741f;font-size:11px}.crm-chat-badge{display:inline-flex;min-width:18px;height:18px;padding:0 5px;align-items:center;justify-content:center;border-radius:10px;background:#d92d20;color:#fff;font-size:10px}.crm-internal-chat{display:grid;grid-template-columns:240px 1fr;min-height:420px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.crm-chat-users{border-right:1px solid var(--border);overflow:auto}.crm-chat-user{width:100%;display:flex;justify-content:space-between;gap:8px;padding:11px;border:0;border-bottom:1px solid var(--border);background:#fff;text-align:left;cursor:pointer}.crm-chat-user.active,.crm-chat-user:hover{background:#f4f7f9}.crm-chat-user b{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:10px;background:#25d366;color:#fff;font-size:10px}.crm-chat-pane{display:flex;flex-direction:column;min-width:0}.crm-chat-title{padding:11px 14px;border-bottom:1px solid var(--border);font-weight:700}.crm-chat-messages{flex:1;max-height:390px;overflow:auto;padding:12px;background:#f7f8f9;display:flex;flex-direction:column;gap:7px}.crm-chat-msg{max-width:75%;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#fff}.crm-chat-msg.out{align-self:flex-end;background:#e9f8ef}.crm-chat-msg.in{align-self:flex-start}.crm-chat-msg small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.crm-chat-compose{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border)}.crm-chat-compose textarea{flex:1}.hidden{display:none!important}@media(max-width:760px){.crm-internal-chat{grid-template-columns:1fr}.crm-chat-users{max-height:150px;border-right:0;border-bottom:1px solid var(--border)}}

/* CRM Fase 9.4.1 - menciones */
.crm-note-editor{position:relative;flex:1}.crm-note-editor textarea{width:100%;box-sizing:border-box}
.crm-mention-suggestions{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:20;max-height:230px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:9px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.crm-mention-suggestions button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;border-bottom:1px solid var(--border);background:#fff;padding:9px 11px;text-align:left;cursor:pointer}
.crm-mention-suggestions button:last-child{border-bottom:0}.crm-mention-suggestions button:hover{background:#f4f7f9}.crm-mention-suggestions small{color:var(--muted)}
.crm-mentions-list{display:flex;flex-direction:column;gap:8px}.crm-mention-item{width:100%;border:1px solid var(--border);border-radius:9px;background:#fff;padding:10px 12px;text-align:left;cursor:pointer}
.crm-mention-item:hover{background:#fff8db;border-color:#f1d97a}.crm-mention-item>div{display:flex;justify-content:space-between;gap:12px}.crm-mention-item span,.crm-mention-item small{color:var(--muted);font-size:11px}.crm-mention-item p{margin:6px 0;white-space:pre-wrap}

/* CRM Fase 9.4.2 - acceso por mención */
.crm-mention-access-banner,.crm-mention-readonly{
  border:1px solid #ead58b;background:#fff8dc;border-radius:9px;
  padding:10px 12px;margin-bottom:12px;color:#5f4a00
}
.crm-mention-readonly{margin-top:10px}

/* CRM Fase 9.4.4 - agentes por cola */
.crm-queue-config{max-width:900px}.crm-queue-config>.form-group{max-width:360px;margin-bottom:14px}
.crm-queue-config input[type=checkbox]{width:18px;height:18px;cursor:pointer}
.crm-queue-config .data-table td{vertical-align:middle}

/* Fase 9.4.5 */
#crmColasTabla td{vertical-align:middle}#crmColaModal .modal-dialog{max-width:720px}

/* CRM Fase 10.1 */
.crm-product-wa-dialog{max-width:850px}.crm-product-wa-search{display:flex;gap:8px;margin-bottom:14px}.crm-product-wa-search input{flex:1}.crm-product-wa-results{max-height:480px;overflow:auto;border:1px solid var(--border);border-radius:10px}.crm-product-wa-card{display:grid;grid-template-columns:64px 1fr 130px 90px;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}.crm-product-wa-card:last-child{border-bottom:0}.crm-product-wa-card img{width:58px;height:58px;object-fit:contain;border-radius:8px;background:#fff}.crm-product-wa-card strong,.crm-product-wa-card span,.crm-product-wa-card small{display:block}.crm-product-wa-card span,.crm-product-wa-card small{color:var(--muted);margin-top:3px}.crm-product-wa-price{text-align:right;font-weight:800}@media(max-width:760px){.crm-product-wa-card{grid-template-columns:52px 1fr}.crm-product-wa-price{text-align:left}.crm-product-wa-card .btn{grid-column:2}.crm-product-wa-search{flex-direction:column}}

/* Fase 10.1.1 */
.crm-product-wa-card{grid-template-columns:64px 1fr 125px 125px 90px}
.crm-wa-window{font-variant-numeric:tabular-nums}
@media(max-width:900px){.crm-product-wa-card{grid-template-columns:58px 1fr 110px}.crm-product-wa-card .crm-product-wa-info,.crm-product-wa-card .crm-product-wa-send{grid-column:auto}}
@media(max-width:650px){.crm-product-wa-card{grid-template-columns:52px 1fr}.crm-product-wa-price,.crm-product-wa-card .crm-product-wa-info,.crm-product-wa-card .crm-product-wa-send{grid-column:2;text-align:left}}

/* CRM Fase 10.3 */
.crm-payment-create{display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 0 12px;font-size:13px;font-weight:700}
.crm-pay-label{color:var(--muted)}.crm-pay-label.active{color:var(--text)}
.crm-sales-filters{display:flex;align-items:end;gap:10px;margin-bottom:16px}.crm-sales-filters .form-group{margin-bottom:0}
@media(max-width:760px){.crm-sales-filters{align-items:stretch;flex-direction:column}.crm-sales-filters .form-group{width:100%}}

/* CRM 10.5 - Documentos */
.crm-doc-card{width:min(900px,94vw);max-height:88vh;display:flex;flex-direction:column}.crm-doc-card .modal-body{overflow:auto}.crm-doc-card .modal-footer{display:flex;justify-content:flex-end;padding:14px 18px;border-top:1px solid #e5e7eb;background:#fff}

/* CRM 10.5.3 - Documentos sobre conversación */
#crmDocumentosModal{z-index:13050}
#crmDocumentosModal .crm-doc-dialog{max-width:920px;width:94vw}
#crmDocumentosModal .modal-body{max-height:68vh;overflow:auto}
#crmDocumentosModal .error-text{padding:28px;text-align:center}

/* CRM Fase 14.1 - Facebook Messenger */
.crm-channel-facebook .crm-channel-badge{background:#eef4ff;border-color:#c9d9ff;color:#1d4f91}

/* Fase 14.2 - Ventana por canal y adjuntos */
.crm-channel-facebook .crm-wa-window.open{background:#eef4ff;color:#1d4f91;border:1px solid #c9d9ff}
.crm-channel-facebook .crm-wa-window.closed{background:#f4f6fa;color:#5b6472;border:1px solid #d9dee8}
.crm-attachment-link{display:block;margin:7px 0 3px;padding:7px 10px;border:1px solid #d7e0e8;border-radius:8px;background:#fff;color:#245b92;cursor:pointer;text-align:left;font:inherit}
.crm-attachment-link:hover{background:#f5f9fd}
.crm-attachment-dialog{max-width:980px}.crm-attachment-image{display:block;max-width:100%;max-height:70vh;margin:auto;object-fit:contain}.crm-attachment-frame{width:100%;height:70vh;border:0;background:#fff}

/* CRM Fase 15.1 - Instagram */
.crm-channel-instagram .crm-channel-badge{background:#fff0f7;border-color:#f3bfd8;color:#a52762}
.crm-channel-instagram .crm-wa-window.open{background:#fff0f7;color:#a52762;border:1px solid #f3bfd8}
.crm-channel-instagram .crm-wa-window.closed{background:#f8f3f6;color:#6d5c65;border:1px solid #e6dbe1}

/* CRM Fase 15.3 - Bandeja omnicanal */
.crm-inbox{display:grid;grid-template-columns:minmax(320px,390px) 1fr;min-height:680px;background:#fff;border:1px solid #dfe6ee;border-radius:14px;overflow:hidden}.crm-inbox-left{border-right:1px solid #e4e9ef;background:#f8fafc}.crm-inbox-filters{padding:14px;display:grid;gap:8px;border-bottom:1px solid #e4e9ef}.crm-inbox-filters input,.crm-inbox-filters select{width:100%;padding:10px 12px;border:1px solid #d7dee7;border-radius:9px;background:#fff}.crm-inbox-list{max-height:680px;overflow:auto}.crm-inbox-item{width:100%;border:0;border-bottom:1px solid #e9edf2;background:#fff;padding:13px;display:grid;grid-template-columns:42px 1fr auto;gap:10px;text-align:left;cursor:pointer}.crm-inbox-item:hover,.crm-inbox-item.active{background:#eef5ff}.crm-inbox-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e7eef8;font-weight:800;color:#24558b}.crm-inbox-summary{min-width:0;display:grid;gap:2px}.crm-inbox-summary strong,.crm-inbox-summary em{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-inbox-summary em{font-style:normal;color:#596675;font-size:12px}.crm-inbox-summary small{color:#718096}.crm-inbox-meta{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.crm-inbox-meta b{font-size:10px;padding:3px 6px;border-radius:10px}.crm-inbox-meta b.open{background:#dcfce7;color:#166534}.crm-inbox-meta b.closed{background:#e5e7eb;color:#4b5563}.crm-inbox-chat{display:flex;flex-direction:column;min-width:0;background:#f4f7f9}.crm-inbox-empty{margin:auto;text-align:center;color:#667085;display:grid;gap:8px}.crm-inbox-chat-head{padding:16px 20px;background:#fff;border-bottom:1px solid #e4e9ef;display:flex;justify-content:space-between;align-items:center}.crm-inbox-chat-head h2{margin:0}.crm-inbox-chat-head p{margin:4px 0 0;color:#667085}.crm-inbox-contact{padding:8px 20px;background:#fff;border-bottom:1px solid #e4e9ef;display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#596675}.crm-inbox-messages{padding:22px;overflow:auto;flex:1;min-height:500px}.crm-inbox-messages .crm-message{max-width:72%;margin:8px 0}.crm-inbox-messages .crm-message.out{margin-left:auto}.crm-inbox-image{border:0;background:transparent;padding:4px 0;cursor:pointer;display:block}.crm-inbox-image img{max-width:260px;max-height:220px;border-radius:8px}.crm-inbox-actions{padding:12px 18px;background:#fff;border-top:1px solid #e4e9ef;display:flex;justify-content:flex-end;gap:10px}@media(max-width:900px){.crm-inbox{grid-template-columns:1fr}.crm-inbox-left{border-right:0}.crm-inbox-list{max-height:340px}.crm-inbox-chat{min-height:600px}}

/* CRM Fase 15.3.5 - Identidad visual omnicanal y visor de adjuntos */
.crm-inbox-item{border-left:4px solid transparent;transition:background .15s ease,border-color .15s ease}
.crm-inbox-item:has(.crm-inbox-avatar svg){border-left-color:#25d366}
.crm-inbox-item:has(.crm-inbox-avatar strong[title="Facebook Messenger"]){border-left-color:#1877f2}
.crm-inbox-item:has(.crm-inbox-avatar strong[title="Instagram"]){border-left-color:#c13584}
.crm-inbox-item:has(.crm-inbox-avatar.manual){border-left-color:#78909c}
.crm-inbox-avatar svg{width:23px;height:23px}.crm-inbox-avatar:has(svg){background:#e9f9ef;color:#128c4a}
.crm-inbox-avatar:has(strong[title="Facebook Messenger"]){background:#eaf2ff;color:#1877f2}
.crm-inbox-avatar:has(strong[title="Instagram"]){background:linear-gradient(135deg,#fff0f7,#f1ecff);color:#c13584}
.crm-inbox-avatar.manual{background:#eef2f5;color:#607d8b}
.crm-inbox-chat{--channel:#78909c;--channel-soft:#f3f6f8}.crm-inbox-chat.channel-whatsapp{--channel:#25d366;--channel-soft:#eefbf3}.crm-inbox-chat.channel-facebook{--channel:#1877f2;--channel-soft:#eef5ff}.crm-inbox-chat.channel-instagram{--channel:#c13584;--channel-soft:#fff2f8}.crm-inbox-chat.channel-manual{--channel:#78909c;--channel-soft:#f3f6f8}
.crm-inbox-chat-head{border-top:4px solid var(--channel);background:linear-gradient(90deg,var(--channel-soft),#fff 48%)}
.crm-inbox-head-main{display:flex;align-items:center;gap:12px;min-width:0}.crm-inbox-head-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--channel);border:1px solid color-mix(in srgb,var(--channel) 28%,#fff);font-size:20px;font-weight:800}.crm-inbox-head-icon svg{width:25px;height:25px}
.crm-inbox-chat-head p strong{color:var(--channel)}
.crm-inbox-messages{background:linear-gradient(180deg,var(--channel-soft),#f7f9fb 140px)}
.crm-inbox-image{position:relative}.crm-inbox-image span{display:block;margin-top:4px;font-size:11px;color:#667085}.crm-inbox-image:hover img{box-shadow:0 4px 16px rgba(15,23,42,.16)}
.crm-inbox-image img{transition:box-shadow .15s ease;object-fit:cover}
.crm-inbox-attachment.crm-attachment-link{display:inline-flex;align-items:center;gap:8px;max-width:100%;cursor:pointer}.crm-inbox-attachment.crm-attachment-link strong{font-size:11px;padding:3px 5px;border-radius:4px;background:var(--channel-soft);color:var(--channel)}
.crm-inbox-media-preview{display:block;max-width:100%;max-height:70vh;margin:auto}.crm-inbox-audio-preview{display:block;width:min(620px,100%);margin:35px auto}
#crmInboxAdjuntoModal{z-index:13060}#crmInboxAdjuntoModal .modal-body{max-height:74vh;overflow:auto}#crmInboxAdjuntoModal .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid #e5e7eb;background:#fff}

/* Fase 15.3.6 - identidad visual omnicanal, sin depender de :has()/color-mix() */
.crm-inbox-item{border-left:5px solid #78909c!important;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.crm-inbox-item.channel-whatsapp{border-left-color:#25d366!important}.crm-inbox-item.channel-facebook{border-left-color:#1877f2!important}.crm-inbox-item.channel-instagram{border-left-color:#c13584!important}.crm-inbox-item.channel-manual{border-left-color:#78909c!important}
.crm-inbox-item:hover{transform:translateX(2px)}
.crm-inbox-item.channel-whatsapp.active{background:#edf9f1!important}.crm-inbox-item.channel-facebook.active{background:#edf4ff!important}.crm-inbox-item.channel-instagram.active{background:#fff0f7!important}.crm-inbox-item.channel-manual.active{background:#f1f5f7!important}
.crm-inbox-avatar{background:#eef2f5!important;color:#607d8b!important}.channel-whatsapp .crm-inbox-avatar{background:#e7f8ed!important;color:#128c4a!important}.channel-facebook .crm-inbox-avatar{background:#e8f1ff!important;color:#1877f2!important}.channel-instagram .crm-inbox-avatar{background:linear-gradient(135deg,#fff0f7,#eee9ff)!important;color:#c13584!important}
.channel-logo{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:17px;font-weight:800;line-height:1}.channel-logo.wa{background:#25d366;color:#fff;font-size:15px}.channel-logo.fb{background:#1877f2;color:#fff;font-family:Arial,sans-serif;font-size:20px}.channel-logo.ig{color:#fff;background:linear-gradient(135deg,#f9ce34,#ee2a7b 48%,#6228d7);font-size:20px}.channel-logo.manual{background:#78909c;color:#fff;font-size:16px}
.crm-inbox-chat{--channel:#78909c;--channel-soft:#f3f6f8}.crm-inbox-chat.channel-whatsapp{--channel:#25d366;--channel-soft:#edf9f1}.crm-inbox-chat.channel-facebook{--channel:#1877f2;--channel-soft:#edf4ff}.crm-inbox-chat.channel-instagram{--channel:#c13584;--channel-soft:#fff0f7}.crm-inbox-chat.channel-manual{--channel:#78909c;--channel-soft:#f1f5f7}
.crm-inbox-chat-head{border-top:5px solid var(--channel)!important;background:linear-gradient(90deg,var(--channel-soft),#fff 55%)!important}.crm-inbox-head-icon{border:2px solid var(--channel)!important;background:#fff!important;color:var(--channel)!important}.crm-inbox-chat-head p strong{color:var(--channel)!important}.crm-inbox-messages{background:linear-gradient(180deg,var(--channel-soft),#f7f9fb 170px)!important}
.crm-inbox-image{margin-top:8px!important;padding:8px!important;border:1px solid #dfe6ee!important;border-radius:12px!important;background:#fff!important;text-align:left!important;min-width:180px}.crm-inbox-image img{display:block;max-width:min(320px,100%);max-height:260px;border-radius:9px;object-fit:cover}.crm-inbox-image img[hidden]{display:none!important}.crm-img-loading{display:block;padding:18px;color:#667085;font-size:12px}.crm-img-loading.error{color:#b42318}.crm-img-action{display:block;margin-top:6px;color:var(--channel);font-size:12px;font-weight:700}.crm-inbox-image:hover{box-shadow:0 5px 18px rgba(15,23,42,.12)}
#crmInboxAdjuntoModal .crm-attachment-dialog{width:min(1100px,94vw);max-width:1100px}#crmInboxAdjuntoModal .modal-body{min-height:180px;display:grid;place-items:center;background:#f5f7fa}#crmInboxAdjuntoModal .crm-attachment-image{display:block;max-width:100%;max-height:72vh;object-fit:contain;margin:auto}#crmInboxAdjuntoModal .crm-attachment-frame{width:100%;height:70vh;border:0;background:#fff}.crm-file-loading{padding:50px;color:#667085}.crm-file-card{display:grid;gap:8px;text-align:center;padding:35px}.crm-attachment-link{margin-top:8px!important;border:1px solid #dfe6ee!important;border-radius:10px!important;background:#fff!important;padding:10px 12px!important;color:#1f2937!important}

/* Fase 15.3.7 - iconografia ligera estilo WhatsApp Web / Meta Business Suite */
.crm-inbox-item{grid-template-columns:38px 1fr auto!important;border-left-width:3px!important;padding:12px 13px!important;gap:10px!important}
.crm-inbox-item:hover{transform:none!important}
.crm-inbox-avatar{width:34px!important;height:34px!important;background:transparent!important;border-radius:50%!important}
.channel-logo{width:32px!important;height:32px!important;border-radius:50%!important;background:transparent!important;display:grid!important;place-items:center!important;box-shadow:none!important}
.channel-logo svg{width:19px!important;height:19px!important;display:block!important}
.channel-logo.wa{color:#20b85a!important;background:#eaf8ef!important}.channel-logo.wa svg{fill:currentColor!important}
.channel-logo.fb{color:#1877f2!important;background:#edf4ff!important}.channel-logo.fb svg{fill:currentColor!important}
.channel-logo.ig{color:#c13584!important;background:#fff0f7!important}.channel-logo.ig svg{fill:none!important;stroke:currentColor!important;stroke-width:1.8!important}.channel-logo.ig .ig-dot{fill:currentColor!important;stroke:none!important}
.channel-logo.manual{color:#64748b!important;background:#f1f5f9!important}.channel-logo.manual svg{fill:none!important;stroke:currentColor!important;stroke-width:1.65!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.crm-inbox-head-icon{width:38px!important;height:38px!important;border:0!important;background:transparent!important;box-shadow:none!important}
.crm-inbox-head-icon .channel-logo{width:36px!important;height:36px!important}.crm-inbox-head-icon .channel-logo svg{width:21px!important;height:21px!important}
.crm-inbox-chat-head{border-top-width:3px!important}
.crm-inbox-item.active{box-shadow:inset 2px 0 0 currentColor!important}.crm-inbox-item.channel-whatsapp.active{color:#20b85a}.crm-inbox-item.channel-facebook.active{color:#1877f2}.crm-inbox-item.channel-instagram.active{color:#c13584}.crm-inbox-item.channel-manual.active{color:#64748b}.crm-inbox-summary,.crm-inbox-meta{color:initial}

/* CRM Fase 16.4 - Canal Email en Conversaciones */
.crm-inbox-item.channel-email{border-left-color:#0f766e!important}.crm-inbox-item.channel-email.active{background:#ecfdf8!important;color:#0f766e}.channel-email .crm-inbox-avatar{color:#0f766e!important}.channel-logo.email{color:#0f766e!important;background:#e7f8f4!important}.channel-logo.email svg{fill:none!important;stroke:currentColor!important;stroke-width:1.7!important;stroke-linecap:round!important;stroke-linejoin:round!important}.crm-inbox-chat.channel-email{--channel:#0f766e;--channel-soft:#ecfdf8}.crm-email-subject{margin-top:5px!important}.crm-email-message-subject{padding-bottom:7px;margin-bottom:7px;border-bottom:1px solid rgba(100,116,139,.22);font-size:12px;color:#475569}
/* CRM Fase 16.4.1 - Bandeja omnicanal / Casos */
.crm-inbox-new-badge{display:inline-flex;min-width:24px;height:24px;padding:0 7px;align-items:center;justify-content:center;border-radius:12px;background:#dc2626;color:#fff;font-size:12px;vertical-align:middle}.crm-inbox-item.is-new{background:#f8fbff;font-weight:600}.crm-new-dot{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:9px;background:#dc2626;color:#fff;font-size:9px;font-weight:700;vertical-align:1px}.btn-danger-outline{background:#fff;border:1px solid #dc2626;color:#b91c1c}.btn-danger-outline:hover{background:#fef2f2}.crm-inbox-actions{flex-wrap:wrap}


/* Fase 16.5.1 - Email: lectura y composición */
.crm-message-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.48}
.crm-email-quoted{margin-top:8px;padding-top:7px;border-top:1px dashed #cbd5e1;color:#64748b;font-size:12px}
.crm-email-quoted summary{cursor:pointer;font-weight:600;color:#475569}
.crm-email-quoted>div{margin-top:7px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto}
.crm-email-compose{width:min(760px,calc(100% - 36px));margin:14px auto 0;padding:14px 16px;background:#fff;border:1px solid #dfe6ee;border-radius:12px;box-sizing:border-box}
.crm-email-compose label{display:block;margin-bottom:8px}
.crm-email-compose textarea{display:block;width:100%;min-height:110px;resize:vertical;box-sizing:border-box;padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;font:inherit}
.crm-email-compose-actions{display:flex;justify-content:flex-end;margin-top:10px}
.crm-channel-email .crm-message.out{background:#ecfdf8;border-color:#b7e4d8}
.crm-channel-email .crm-channel-badge{border-color:#b7e4d8;background:#ecfdf8}
@media(max-width:760px){.crm-email-compose{width:calc(100% - 20px);padding:12px}.crm-email-compose-actions .btn{width:100%}}
/* Fase 16.5.2 - compositor Email unificado */
.crm-inbox-actions-email{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}
.crm-inbox-actions-email .crm-email-compose-integrated{width:100%;max-width:none;margin:0;background:#fff}
.crm-inbox-action-buttons{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.crm-email-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.crm-email-selection{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0 10px}
.crm-email-selection:empty{display:none}
.crm-email-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #d6e0ea;border-radius:999px;background:#f7fafc;font-size:12px;max-width:100%}
.crm-email-chip button{border:0;background:transparent;cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.crm-conversation .crm-email-selection{padding:0 4px}
@media(max-width:760px){.crm-inbox-action-buttons .btn{flex:1 1 auto}.crm-email-tools .crm-tool-btn{flex:1 1 auto}}
/* Fase 16.5.2.1 - selectores Email con modales ALTCOM */
.crm-email-doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.crm-email-doc-card{border:1px solid #dbe4ee;background:#fff;border-radius:9px;padding:12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;color:#1f2937}
.crm-email-doc-card:hover{border-color:#245995;background:#f6f9fd}.crm-email-doc-card strong{color:#17375e}.crm-email-doc-card span,.crm-email-doc-card small{color:#64748b}

/* Fase 16.6.3 - No leidos + identidad Email tipo Outlook */
.crm-inbox-item.channel-email{border-left-color:#0078d4!important}
.crm-inbox-item.channel-email.active{background:#eef6fc!important;color:#0078d4!important}
.channel-email .crm-inbox-avatar{background:#e8f3fb!important;color:#0078d4!important}
.channel-logo.email{color:#0078d4!important;background:#e8f3fb!important}
.crm-inbox-chat.channel-email{--channel:#0078d4;--channel-soft:#eef6fc}
.crm-channel-email .crm-message.out{background:#eef6fc;border-color:#b8d9f2}
.crm-channel-email .crm-channel-badge{border-color:#b8d9f2;background:#eef6fc;color:#005a9e}
.crm-unread-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff!important;font-size:11px;font-weight:800;line-height:1;box-shadow:0 1px 2px rgba(0,0,0,.14)}
.crm-inbox-item.is-new .crm-inbox-summary>strong{font-weight:800}


/* Fase 16.6.4 - Layout fijo y scroll independiente de Conversaciones */
.crm-inbox-page{height:100vh;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}
.crm-inbox-page>.page-header{flex:0 0 auto}
.crm-inbox-page>.crm-inbox{flex:1 1 auto;min-height:0;height:auto}
.crm-inbox-left{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.crm-inbox-filters{flex:0 0 auto}
.crm-inbox-list{flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto;overscroll-behavior:contain}
.crm-inbox-chat{min-height:0;overflow:hidden}
.crm-inbox-chat-head,.crm-inbox-contact,.crm-inbox-actions{flex:0 0 auto}
.crm-inbox-messages{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth}
@media(max-width:900px){.crm-inbox-page{height:auto;min-height:100vh;overflow:visible}.crm-inbox-page>.crm-inbox{min-height:680px}.crm-inbox-left{overflow:visible}.crm-inbox-list{max-height:340px!important}.crm-inbox-chat{min-height:600px;overflow:hidden}}


/* Fase 17.1.1 - Kanban profesional: identidad visual por canal */
.crm-card{padding:0!important;overflow:hidden;border-radius:12px!important;box-shadow:0 3px 10px rgba(15,23,42,.055)!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.crm-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.10)!important}
.crm-card-channel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 11px;border-bottom:1px solid rgba(15,23,42,.06);background:#f1f5f9;color:#475569}
.crm-card-channel-head .crm-origin{display:inline-flex;align-items:center;gap:7px;color:inherit;font-size:11px;font-weight:800}
.crm-card-channel-head .crm-origin>.channel-logo,.crm-card-channel-head .crm-origin>.crm-channel-letter{width:18px!important;height:18px!important;min-width:18px!important;font-size:12px!important;background:rgba(255,255,255,.66)!important;color:inherit!important}
.crm-card-channel-head .crm-origin>.channel-logo svg{width:13px!important;height:13px!important}
.crm-card-channel-head .crm-card-signals{display:flex;align-items:center;gap:7px;color:inherit}.crm-card-channel-head .crm-card-signals small{color:inherit;opacity:.72}
.crm-card-channel-whatsapp .crm-card-channel-head{background:#dff7e8;color:#128c4a}
.crm-card-channel-email .crm-card-channel-head{background:#e5f2fb;color:#0067b8}
.crm-card-channel-facebook .crm-card-channel-head{background:#e8f1ff;color:#1877f2}
.crm-card-channel-instagram .crm-card-channel-head{background:linear-gradient(100deg,#fff0f7,#f3efff);color:#a92d72}
.crm-card-channel-manual .crm-card-channel-head{background:#eef2f6;color:#526274}
.crm-card-body{padding:11px 12px 12px}.crm-card-body h3{margin:7px 0 6px;line-height:1.25}.crm-card-body>small{display:block;color:var(--muted);margin-top:2px}
.crm-case-type{display:inline-flex;padding:3px 7px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:750;line-height:1.2}
.crm-card-money-secondary{font-size:13px!important;font-weight:650!important;color:#64748b;margin:9px 0!important}
.crm-card-money-secondary::before{content:'Monto: ';font-weight:500;color:#94a3b8}
.crm-card-new-message .crm-card-channel-head{box-shadow:inset 3px 0 0 #dc2626}
.crm-card-locked .crm-card-channel-head{border-bottom-style:dashed}
@media(max-width:700px){.crm-card-channel-head{padding:8px 10px}.crm-card-body{padding:10px 11px 11px}}

/* Fase 17.1.2 - Refinamiento visual Kanban */
/* Encabezados de etapa: blancos y sobrios para separar título del área de tarjetas */
.crm-column>header{background:#fff;border-radius:13px 13px 0 0;border-bottom:1px solid #e3e9f0}
.crm-column>header strong{font-weight:700;color:#0f172a}
.crm-column>header span{background:#eef2f6;color:#475569;font-weight:500}

/* Cabecera de canal: más ligera; el contenido de la ficha conserva la jerarquía principal */
.crm-card-channel-head .crm-origin{font-size:10.5px;font-weight:600;letter-spacing:0}
.crm-card-channel-head .crm-origin>.channel-logo,
.crm-card-channel-head .crm-origin>.crm-channel-letter{width:21px!important;height:21px!important;min-width:21px!important;font-size:13px!important;background:rgba(255,255,255,.76)!important}
.crm-card-channel-head .crm-origin>.channel-logo svg{width:16px!important;height:16px!important;display:block!important}

/* Ajustes finos por canal para que los pictogramas mantengan proporción visual */
.crm-card-channel-head .channel-logo.wa svg{width:16px!important;height:16px!important}
.crm-card-channel-head .channel-logo.fb svg{width:15px!important;height:15px!important}
.crm-card-channel-head .channel-logo.ig svg{width:16px!important;height:16px!important;stroke-width:1.9!important}
.crm-card-channel-head .channel-logo.email svg{width:16px!important;height:16px!important;stroke-width:1.8!important}
.crm-card-channel-head .channel-logo.manual svg{width:15px!important;height:15px!important}

/* Fase 17.1.3 - iconografia PNG transparente de canales en Kanban */
.crm-card-channel-head .crm-origin>.crm-channel-png{width:21px!important;height:21px!important;min-width:21px!important;object-fit:contain;display:block;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
@media(max-width:700px){.crm-card-channel-head .crm-origin>.crm-channel-png{width:20px!important;height:20px!important;min-width:20px!important}}

/* Fase 17.1.4 - iconografia unificada Kanban + Conversaciones */
.crm-inbox-avatar .channel-logo{background:transparent!important;width:34px!important;height:34px!important}
.crm-inbox-avatar .crm-channel-png,.crm-inbox-head-icon .crm-channel-png{width:22px!important;height:22px!important;min-width:22px!important;object-fit:contain;display:block;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
.crm-inbox-head-icon .crm-channel-png{width:24px!important;height:24px!important;min-width:24px!important}
.crm-card-channel-head.channel-manual .crm-origin>.crm-channel-png{width:20px!important;height:20px!important;min-width:20px!important}


/* =========================================================
   Fase 17.2 - Pulido integral de Conversaciones
   Solo presentacion / UX. No modifica logica ni polling.
   ========================================================= */
.crm-inbox-page{padding-bottom:14px}
.crm-inbox-page>.page-header{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e7edf3}
.crm-inbox-page>.page-header h1{display:flex;align-items:center;gap:9px;margin-bottom:3px;letter-spacing:-.02em}
.crm-inbox-page>.page-header p{margin:0;color:#687588;max-width:900px;font-size:13px;line-height:1.45}
.crm-inbox-new-badge{min-width:22px;height:22px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:750;box-shadow:0 2px 5px rgba(185,28,28,.16)}

.crm-inbox{border-color:#dfe6ee!important;border-radius:16px!important;box-shadow:0 7px 24px rgba(15,23,42,.055);background:#fff}
.crm-inbox-left{background:#f7f9fc!important;border-right-color:#e4eaf1!important}
.crm-inbox-filters{padding:12px!important;gap:7px!important;background:#fff;border-bottom-color:#e4eaf1!important;box-shadow:0 1px 0 rgba(15,23,42,.02);z-index:2}
.crm-inbox-filters input,.crm-inbox-filters select{height:38px;padding:8px 11px!important;border-color:#d8e0e9!important;border-radius:9px!important;color:#253142;font-size:12.5px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.crm-inbox-filters input:focus,.crm-inbox-filters select:focus{border-color:#7da3ca!important;box-shadow:0 0 0 3px rgba(36,89,149,.09)}
.crm-inbox-filters input::placeholder{color:#98a3b3}

.crm-inbox-list{padding:7px;background:#f7f9fc;scrollbar-width:thin;scrollbar-color:#c7d0db transparent}
.crm-inbox-list::-webkit-scrollbar,.crm-inbox-messages::-webkit-scrollbar{width:8px;height:8px}
.crm-inbox-list::-webkit-scrollbar-thumb,.crm-inbox-messages::-webkit-scrollbar-thumb{background:#c8d2dd;border-radius:10px;border:2px solid transparent;background-clip:padding-box}
.crm-inbox-list::-webkit-scrollbar-track,.crm-inbox-messages::-webkit-scrollbar-track{background:transparent}
.crm-inbox-item{margin:0 0 6px;border:1px solid #e5ebf1!important;border-left-width:3px!important;border-radius:11px;background:#fff!important;padding:10px 10px!important;grid-template-columns:38px minmax(0,1fr) auto!important;gap:9px!important;box-shadow:0 1px 2px rgba(15,23,42,.025);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important}
.crm-inbox-item:last-child{margin-bottom:0}
.crm-inbox-item:hover{background:#fff!important;border-color:#d5dee8!important;box-shadow:0 4px 12px rgba(15,23,42,.06)}
.crm-inbox-item.active{background:var(--conv-active,#f6f9fc)!important;border-color:var(--conv-accent,#78909c)!important;box-shadow:inset 3px 0 0 var(--conv-accent,#78909c),0 4px 13px rgba(15,23,42,.065)!important}
.crm-inbox-item.channel-whatsapp{--conv-accent:#25b95f;--conv-active:#effaf3}
.crm-inbox-item.channel-facebook{--conv-accent:#1877f2;--conv-active:#eff5ff}
.crm-inbox-item.channel-instagram{--conv-accent:#c13584;--conv-active:#fff3f8}
.crm-inbox-item.channel-email{--conv-accent:#0078d4;--conv-active:#eff7fd}
.crm-inbox-item.channel-manual{--conv-accent:#64748b;--conv-active:#f4f7f9}
.crm-inbox-item.is-new{border-color:#d9e3ee!important}
.crm-inbox-avatar{align-self:start;margin-top:1px}
.crm-inbox-summary{gap:2px!important;align-content:start}
.crm-inbox-summary>strong{font-size:12.8px;line-height:1.32;color:#162033;font-weight:680;letter-spacing:-.005em}
.crm-inbox-summary>small{font-size:10.5px!important;color:#788597!important;line-height:1.25}
.crm-inbox-summary>em{font-size:11.5px!important;line-height:1.35!important;color:#5f6b7b!important;margin-top:2px}
.crm-inbox-summary>em strong{font-weight:650;color:#475569}
.crm-inbox-item.is-new .crm-inbox-summary>strong{font-weight:760!important}
.crm-inbox-meta{gap:5px!important;min-width:58px;padding-top:1px}
.crm-inbox-meta>small{font-size:9.5px;color:#8a96a5;white-space:nowrap}
.crm-inbox-meta b{font-size:9px!important;font-weight:650!important;padding:3px 6px!important;line-height:1.1}
.crm-unread-count{min-width:20px!important;height:20px!important;padding:0 5px!important;font-size:10.5px!important;font-weight:750!important;box-shadow:0 2px 5px rgba(185,28,28,.18)!important}

.crm-inbox-chat{background:#f3f6f9!important}
.crm-inbox-chat-head{min-height:66px;padding:12px 17px!important;border-top-width:0!important;border-bottom:1px solid #e3e9ef!important;background:#fff!important;box-shadow:0 1px 0 rgba(15,23,42,.025);position:relative}
.crm-inbox-chat-head::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--channel,#78909c)}
.crm-inbox-head-main{gap:11px!important}
.crm-inbox-head-icon{width:39px!important;height:39px!important;min-width:39px!important}
.crm-inbox-head-icon .channel-logo{width:39px!important;height:39px!important}
.crm-inbox-head-icon .crm-channel-png{width:25px!important;height:25px!important;min-width:25px!important}
.crm-inbox-chat-head h2{font-size:17px;line-height:1.25;color:#182235;font-weight:720;letter-spacing:-.015em}
.crm-inbox-chat-head p{margin-top:3px!important;font-size:11px;color:#758194!important;line-height:1.35}
.crm-inbox-chat-head p strong{font-weight:650!important;color:var(--channel)!important}
.crm-email-subject{display:block;margin-top:4px!important;color:#536174!important}
.status-pill{font-size:10px!important;padding:5px 8px!important;border-radius:999px!important;font-weight:650!important}

.crm-inbox-contact{padding:7px 16px!important;gap:6px!important;background:#fbfcfd!important;border-bottom-color:#e6ebf0!important}
.crm-inbox-contact span{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border:1px solid #e1e7ed;border-radius:999px;background:#fff;color:#5a6879;font-size:10.5px;line-height:1.2}
.crm-inbox-contact span:empty{display:none}

.crm-inbox-messages{padding:20px 22px 24px!important;background:linear-gradient(180deg,var(--channel-soft),#f4f7f9 150px)!important;scrollbar-width:thin;scrollbar-color:#c7d0db transparent}
.crm-inbox-messages .crm-message{max-width:min(74%,760px)!important;padding:10px 12px!important;border:1px solid #e1e7ed;border-radius:14px 14px 14px 5px!important;background:#fff;box-shadow:0 2px 5px rgba(15,23,42,.045);font-size:12.5px;color:#263244;line-height:1.48}
.crm-inbox-messages .crm-message.out{border-radius:14px 14px 5px 14px!important;background:var(--channel-soft)!important;border-color:color-mix(in srgb,var(--channel) 18%,#e1e7ed)!important;box-shadow:0 2px 5px rgba(15,23,42,.035)}
.crm-inbox-messages .crm-message>small{display:block;margin-top:7px;text-align:right;font-size:9.5px;color:#8a96a6;line-height:1}
.crm-inbox-messages .crm-message.in>small{text-align:left}
.crm-message-text{line-height:1.52!important;color:#263244}
.crm-email-message-subject{font-size:11px!important;color:#526173!important;border-bottom-color:#dfe5eb!important;padding-bottom:6px!important;margin-bottom:7px!important}
.crm-email-message-subject strong{color:#36465a;font-weight:680}
.crm-email-quoted{font-size:11px!important;color:#718096!important;border-top-color:#d9e0e7!important}
.crm-email-quoted summary{font-size:10.5px;color:#596879!important;font-weight:650!important}
.crm-inbox-image,.crm-attachment-link{box-shadow:none!important}

.crm-inbox-actions{background:#fff!important;border-top-color:#e1e7ed!important;box-shadow:0 -2px 12px rgba(15,23,42,.035)}
.crm-inbox-actions-email{padding:10px 13px!important;gap:9px!important}
.crm-inbox-actions-email .crm-email-compose-integrated{border-color:#dfe6ee!important;border-radius:11px!important;padding:11px 12px!important;box-shadow:0 1px 3px rgba(15,23,42,.03)}
.crm-email-compose label{font-size:11.5px;color:#344256;margin-bottom:6px!important}
.crm-email-compose textarea{min-height:86px!important;border-color:#d7dfe8!important;border-radius:9px!important;padding:9px 10px!important;font-size:12px;line-height:1.45;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.crm-email-compose textarea:focus{border-color:#7da3ca!important;box-shadow:0 0 0 3px rgba(36,89,149,.08)}
.crm-email-tools{gap:6px!important;margin-bottom:7px!important}
.crm-email-tools .crm-tool-btn{min-height:31px;padding:5px 8px;font-size:10.5px;border-radius:8px}
.crm-email-chip{padding:5px 8px!important;font-size:10.5px!important;background:#f6f8fa!important}
.crm-email-compose-actions{margin-top:8px!important}
.crm-inbox-action-buttons{gap:7px!important}
.crm-inbox-action-buttons .btn{min-height:34px;padding:7px 11px;font-size:11px}

.crm-inbox-empty{max-width:420px;padding:28px;color:#758194!important}
.crm-inbox-empty::before{content:'💬';display:block;font-size:28px;line-height:1;margin-bottom:2px;filter:grayscale(1);opacity:.52}
.crm-inbox-empty strong{font-size:14px;color:#425166;font-weight:680}
.crm-inbox-empty span{font-size:11.5px;line-height:1.45}
.empty-table{font-size:11.5px;color:#7b8795}

@media(max-width:1100px){
 .crm-inbox{grid-template-columns:minmax(290px,350px) 1fr}
 .crm-inbox-messages .crm-message{max-width:82%!important}
}
@media(max-width:900px){
 .crm-inbox{border-radius:12px!important}
 .crm-inbox-list{padding:6px}
 .crm-inbox-chat-head{padding:11px 14px!important}
 .crm-inbox-contact{padding:7px 12px!important}
 .crm-inbox-messages{padding:16px 12px 20px!important}
 .crm-inbox-messages .crm-message{max-width:90%!important}
}
@media(max-width:600px){
 .crm-inbox-page>.page-header p{font-size:12px}
 .crm-inbox-filters{grid-template-columns:1fr 1fr;gap:6px!important}
 .crm-inbox-filters input{grid-column:1/-1}
 .crm-inbox-item{grid-template-columns:36px minmax(0,1fr) auto!important;padding:9px!important}
 .crm-inbox-chat-head{align-items:flex-start!important;gap:8px}
 .crm-inbox-chat-head h2{font-size:15px}
 .crm-inbox-contact{gap:5px!important}
 .crm-inbox-contact span{font-size:10px;padding:4px 7px}
 .crm-inbox-messages .crm-message{max-width:94%!important}
 .crm-inbox-action-buttons{display:grid!important;grid-template-columns:1fr 1fr}
 .crm-inbox-action-buttons .btn{width:100%}
}

/* =========================================================
   FASE 17.3 - Configuracion CRM agrupada y lenguaje visual
   Solo presentacion. No altera IDs, formularios ni endpoints.
   ========================================================= */
.crm-config-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.crm-config-category{display:flex;align-items:center;gap:12px;min-height:72px;padding:14px 16px;background:#fff;border:1px solid #e3e8ef;border-radius:14px;box-shadow:0 2px 8px rgba(26,39,60,.05);text-decoration:none!important;color:#344054;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.crm-config-category:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(26,39,60,.09);border-color:#ccd6e3}
.crm-config-category-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;font-size:18px;font-weight:700;background:#f3f6fa;color:#5d6b7d}
.crm-config-category strong{display:block;font-size:14px;color:#243247;margin-bottom:3px}.crm-config-category small{display:block;font-size:11.5px;color:#7a8798;line-height:1.3}
.crm-config-category-channels .crm-config-category-icon{background:#edf7f2;color:#24845f}.crm-config-category-queues .crm-config-category-icon{background:#eef4ff;color:#376fd0}.crm-config-category-messaging .crm-config-category-icon{background:#f5f0ff;color:#7655bd}
.crm-config-group{scroll-margin-top:16px;margin:0 0 24px;padding:16px;background:#f7f9fc;border:1px solid #e4e9f0;border-radius:16px}
.crm-config-group-heading{display:flex;align-items:center;gap:11px;padding:2px 2px 14px}.crm-config-group-heading h2{margin:0 0 2px;font-size:17px;color:#26364a}.crm-config-group-heading p{margin:0;color:#7a8797;font-size:12px}.crm-config-group-symbol{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#fff;border:1px solid #e1e7ee;color:#53647a;font-size:16px;font-weight:700}
.crm-config-group>.content-card{margin-bottom:12px;border:1px solid #e1e7ee!important;border-radius:13px!important;box-shadow:0 2px 8px rgba(26,39,60,.045)!important;overflow:hidden}.crm-config-group>.content-card:last-child{margin-bottom:0}
.crm-config-channel{position:relative;border-top-width:3px!important}.crm-config-channel-whatsapp{border-top-color:#25d366!important}.crm-config-channel-facebook{border-top-color:#1877f2!important}.crm-config-channel-instagram{border-top-color:#c13584!important}.crm-config-channel-email{border-top-color:#0078d4!important}
.crm-config-channel .section-title-row h2{display:flex;align-items:center;gap:9px}.crm-config-channel-icon{width:23px;height:23px;object-fit:contain;display:block;flex:0 0 23px}
.crm-config-group .section-title-row{padding-bottom:11px;margin-bottom:10px;border-bottom:1px solid #edf0f4}.crm-config-group .section-title-row h2{font-size:15px;margin-bottom:3px}.crm-config-group .section-title-row p{font-size:11.5px;color:#7c8796}
.crm-config-technical{border:1px dashed #d8e0e9!important;background:#fafbfd!important;box-shadow:none!important}.crm-config-technical h2{font-size:14px;color:#4d5d70}
@media(max-width:850px){.crm-config-categories{grid-template-columns:1fr}.crm-config-category{min-height:62px}.crm-config-group{padding:11px}}


/* =========================================================
   FASE 17.4 - Unificacion visual de modales y formularios CRM
   Presentacion solamente: no cambia eventos, IDs ni endpoints.
   ========================================================= */
.crm-page .modal-dialog,.crm-modal-dialog{border-radius:16px!important;overflow:hidden;box-shadow:0 24px 70px rgba(15,23,42,.20)!important;border:1px solid rgba(218,225,234,.95)}
.crm-page .modal-header,.crm-modal-dialog .modal-header{padding:15px 18px!important;background:#fff;border-bottom:1px solid #e7ebf0!important;min-height:66px}
.crm-page .modal-header h2,.crm-page .modal-header h3,.crm-modal-dialog .modal-header h2,.crm-modal-dialog .modal-header h3{margin:0 0 3px!important;color:#25364b;font-size:17px;line-height:1.2;font-weight:700}
.crm-page .modal-header p,.crm-modal-dialog .modal-header p{margin:0!important;color:#7a8797;font-size:11.5px;line-height:1.35}
.crm-modal-title-wrap{display:flex;align-items:center;gap:11px;min-width:0}.crm-modal-title-icon{display:block;width:27px;height:27px;object-fit:contain;flex:0 0 27px}.crm-modal-head{position:relative}.crm-modal-head:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#8b98a8}.crm-modal-head-whatsapp:before{background:#25d366}.crm-modal-head-facebook:before{background:#1877f2}.crm-modal-head-instagram:before{background:linear-gradient(#833ab4,#c13584,#fd1d1d)}.crm-modal-head-email:before{background:#0078d4}.crm-modal-head-manual:before{background:#718096}
.crm-page .modal-close,.crm-modal-dialog .modal-close{display:grid;place-items:center;width:32px;height:32px;padding:0!important;border-radius:9px!important;color:#778396!important;background:#f7f9fb!important;border:1px solid #e3e8ee!important;transition:background .15s ease,color .15s ease,border-color .15s ease}.crm-page .modal-close:hover,.crm-modal-dialog .modal-close:hover{background:#eef2f6!important;color:#344054!important;border-color:#d5dce5!important}
.crm-page .modal-body,.crm-modal-dialog .modal-body{padding:18px!important;background:#fbfcfd}.crm-page .modal-footer,.crm-modal-dialog .modal-footer{padding:11px 16px!important;background:#fff;border-top:1px solid #e7ebf0!important;gap:8px}
.crm-page .form-group label,.crm-modal-dialog .form-group label{display:block;margin-bottom:5px;color:#445268;font-size:11.5px;font-weight:650}.crm-page .form-group small,.crm-modal-dialog .form-group small{display:block;margin-top:5px;color:#8490a0;font-size:10.5px;line-height:1.35}
.crm-page .form-group input:not([type=checkbox]):not([type=radio]),.crm-page .form-group select,.crm-page .form-group textarea,.crm-modal-dialog .form-group input:not([type=checkbox]):not([type=radio]),.crm-modal-dialog .form-group select,.crm-modal-dialog .form-group textarea{border:1px solid #d8e0e8!important;border-radius:9px!important;background:#fff;min-height:38px;padding:8px 10px;box-shadow:0 1px 2px rgba(15,23,42,.02);transition:border-color .15s ease,box-shadow .15s ease}
.crm-page .form-group textarea,.crm-modal-dialog .form-group textarea{min-height:78px;resize:vertical}.crm-page .form-group input:focus,.crm-page .form-group select:focus,.crm-page .form-group textarea:focus,.crm-modal-dialog .form-group input:focus,.crm-modal-dialog .form-group select:focus,.crm-modal-dialog .form-group textarea:focus{outline:none;border-color:#8ca9c7!important;box-shadow:0 0 0 3px rgba(36,89,149,.08)!important}
.crm-page .modal-footer .btn,.crm-modal-dialog .modal-footer .btn{min-height:36px;border-radius:9px!important;padding:7px 13px;font-size:11.5px;font-weight:650}.crm-page .modal-footer .btn-primary,.crm-modal-dialog .modal-footer .btn-primary{box-shadow:0 2px 5px rgba(36,89,149,.16)}
.crm-page .cliente-form-grid,.crm-modal-dialog .cliente-form-grid,.crm-page .form-grid{gap:13px 14px!important}.crm-page .password-inline,.crm-page .crm-copy-row{gap:7px}.crm-page .password-inline .btn,.crm-page .crm-copy-row .btn{min-height:38px;border-radius:9px!important}
@media(max-width:650px){.crm-page .modal-header,.crm-modal-dialog .modal-header{padding:13px 14px!important}.crm-page .modal-body,.crm-modal-dialog .modal-body{padding:14px!important}.crm-modal-title-icon{width:24px;height:24px;flex-basis:24px}.crm-page .modal-footer,.crm-modal-dialog .modal-footer{padding:10px 12px!important;flex-wrap:wrap}.crm-page .modal-footer .btn,.crm-modal-dialog .modal-footer .btn{flex:1 1 120px}}

/* =========================================================
   FASE 17.4.1 - Correccion scroll vertical detalle Kanban
   Mantiene encabezado y pie visibles; solo el contenido desplaza.
   ========================================================= */
#crmDetalleModal .crm-modal-dialog{
    max-height:calc(100vh - 40px)!important;
    display:flex;
    flex-direction:column;
    overflow:hidden!important;
}
#crmDetalleModal .modal-header,
#crmDetalleModal .modal-footer{
    flex:0 0 auto;
}
#crmDetalleModal .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto!important;
    overscroll-behavior:contain;
}
@media(max-width:650px){
    #crmDetalleModal .crm-modal-dialog{max-height:calc(100vh - 20px)!important}
}

/* =========================================================
   FASE 17.4.2 - Identidad de canal + badge sobrio + modal producto al frente
   ========================================================= */
#crmDetalleModal .modal-header.crm-modal-head{transition:background .18s ease,border-color .18s ease}
#crmDetalleModal .modal-header.crm-modal-head-whatsapp{background:linear-gradient(90deg,#effbf3 0,#fff 42%)!important}
#crmDetalleModal .modal-header.crm-modal-head-facebook{background:linear-gradient(90deg,#eef5ff 0,#fff 42%)!important}
#crmDetalleModal .modal-header.crm-modal-head-instagram{background:linear-gradient(90deg,#fff2f8 0,#f8f4ff 20%,#fff 48%)!important}
#crmDetalleModal .modal-header.crm-modal-head-email{background:linear-gradient(90deg,#eff8fe 0,#fff 42%)!important}
#crmDetalleModal .modal-header.crm-modal-head-manual{background:linear-gradient(90deg,#f3f6f8 0,#fff 42%)!important}
#crmDetalleModal .crm-modal-title-icon{width:30px;height:30px;flex-basis:30px}

#crmDetalleModal .crm-channel-badge.crm-channel-badge-compact{
 display:inline-flex!important;align-items:center!important;gap:7px!important;width:auto!important;max-width:100%!important;
 min-height:34px!important;padding:5px 9px!important;margin:8px 0 10px!important;border-radius:9px!important;
 font-size:11px!important;font-weight:500!important;box-shadow:none!important
}
#crmDetalleModal .crm-channel-badge-compact .crm-channel-png{width:19px!important;height:19px!important;min-width:19px!important}
#crmDetalleModal .crm-channel-badge-name{font-weight:650;white-space:nowrap}
#crmDetalleModal .crm-channel-badge-id{font-size:10.5px;opacity:.78;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#crmDetalleModal .crm-channel-state{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap;background:#eef2f6;color:#64748b}
#crmDetalleModal .crm-channel-state.is-open{background:#dff4e8;color:#16794a}
#crmDetalleModal .crm-channel-state.is-closed{background:#eef1f5;color:#657184}

/* El detalle de producto es un modal secundario: siempre debe quedar sobre el detalle Kanban. */
#crmProductoModal{z-index:14050!important}
#crmProductoModal.show{display:flex!important}
#crmProductoModal .modal-dialog{position:relative;z-index:14051}

@media(max-width:650px){
 #crmDetalleModal .crm-channel-badge.crm-channel-badge-compact{display:flex!important;width:100%!important;flex-wrap:wrap}
 #crmDetalleModal .crm-channel-badge-id{flex:1 1 130px}
}

/* =========================================================
   FASE 17.4.3 - Detalle producto + accion Finalizar atencion
   Solo presentacion. Mantiene la logica existente.
   ========================================================= */
#crmProductoModal .product-modal-dialog{
    width:min(1100px,calc(100vw - 32px));
    max-height:calc(100vh - 40px)!important;
    display:flex;
    flex-direction:column;
    overflow:hidden!important;
    border-radius:16px!important;
    background:#fff;
    border:1px solid #dfe5ec;
    box-shadow:0 28px 80px rgba(15,23,42,.24)!important;
}
#crmProductoModal .modal-header{
    flex:0 0 auto;
    padding:15px 18px!important;
    background:linear-gradient(90deg,#f3f7fb 0,#fff 45%)!important;
    border-bottom:1px solid #e5eaf0!important;
}
#crmProductoModal .modal-header h2{font-size:17px!important;color:#25364b;margin:0 0 3px!important}
#crmProductoModal .modal-header p{font-size:11.5px!important;color:#7a8797;margin:0!important}
#crmProductoModal .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    padding:20px!important;
    background:#fbfcfd;
}
#crmProductoModal .modal-footer{
    flex:0 0 auto;
    position:relative;
    z-index:2;
    padding:11px 16px!important;
    background:#fff!important;
    border-top:1px solid #e5eaf0!important;
    box-shadow:0 -5px 16px rgba(15,23,42,.035);
}
#crmProductoModal .modal-footer .btn{
    min-width:90px;
    min-height:36px;
    border-radius:9px!important;
    font-size:11.5px;
    font-weight:650;
}
#crmProductoModal .product-main-image{background:#fff;border-color:#e0e6ed;box-shadow:0 2px 8px rgba(15,23,42,.035)}
#crmProductoModal .product-data-grid>div,
#crmProductoModal .product-stock-grid>div{border-color:#e1e7ee;border-radius:10px;box-shadow:0 1px 3px rgba(15,23,42,.025)}
#crmProductoModal .product-price-box{background:#f3f7fb;border-color:#dce5ef;border-radius:11px}
#crmProductoModal .product-tech-sheet{border-top-color:#e4e9ef}

/* Accion destructiva/terminal: debe reconocerse inmediatamente como boton. */
#crmDetalleModal #crmFinalizarAtencion.crm-finish-chat{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:38px;
    padding:8px 15px!important;
    border:1px solid #dc3545!important;
    border-radius:9px!important;
    background:#dc3545!important;
    color:#fff!important;
    font-size:11.5px!important;
    font-weight:700!important;
    line-height:1!important;
    box-shadow:0 3px 8px rgba(220,53,69,.20)!important;
    cursor:pointer;
    transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
#crmDetalleModal #crmFinalizarAtencion.crm-finish-chat:hover{
    background:#bb2d3b!important;
    border-color:#b02a37!important;
    box-shadow:0 5px 12px rgba(220,53,69,.26)!important;
    transform:translateY(-1px);
}
#crmDetalleModal #crmFinalizarAtencion.crm-finish-chat:focus{outline:none;box-shadow:0 0 0 3px rgba(220,53,69,.15),0 3px 8px rgba(220,53,69,.20)!important}
#crmDetalleModal #crmFinalizarAtencion.crm-finish-chat:disabled{opacity:.6;cursor:not-allowed;transform:none}
#crmDetalleModal .crm-attention-actions{align-items:center}
#crmDetalleModal .crm-attention-actions small{color:#7a8797;font-size:10.5px;line-height:1.35}

@media(max-width:650px){
 #crmProductoModal .product-modal-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px)!important}
 #crmProductoModal .modal-body{padding:14px!important}
 #crmProductoModal .product-detail-grid{grid-template-columns:1fr;gap:18px}
 #crmProductoModal .product-main-image{height:260px}
 #crmProductoModal .product-data-grid{grid-template-columns:1fr 1fr}
 #crmProductoModal .modal-footer .btn{width:100%}
}

/* FASE 17.4.4 - Finalizar atención en el pie del modal */
#crmDetalleModal > .modal-dialog > .modal-content > .modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px}
#crmDetalleModal > .modal-dialog > .modal-content > .modal-footer #crmFinalizarAtencion{margin:0}


/* =========================================================
   FASE 17.4.5 - CORRECCION REAL DEL FOOTER KANBAN
   Estructura real:
   #crmDetalleModal > .modal-dialog > .modal-footer
   ========================================================= */
#crmDetalleModal > .modal-dialog > .modal-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    gap: 14px !important;
}

#crmDetalleModal > .modal-dialog > .modal-footer [data-crm-close="detail"] {
    order: 1 !important;
    margin: 0 !important;
}

#crmDetalleModal > .modal-dialog > .modal-footer #crmFinalizarAtencion {
    order: 2 !important;
    margin: 0 0 0 auto !important;
}


/* =========================================================
   FASE 17.5.1 - Identidad Altcom CRM en sidebar
   ========================================================= */
.sidebar-brand .altcom-sidebar-logo {
    overflow: hidden;
    padding: 0;
    background: transparent;
    box-shadow: none;
    flex: 0 0 42px;
}

.sidebar-brand .altcom-sidebar-logo img {
    display: block;
    width: 42px;
    height: 42px;
    object-fit: contain;
    border-radius: 10px;
}

.sidebar-brand .altcom-sidebar-brand-text {
    min-width: 0;
    overflow: hidden;
}

.sidebar-brand .altcom-sidebar-brand-text strong {
    color: #f7fbff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
}

.sidebar-brand .altcom-sidebar-brand-text span {
    display: block;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #8fa1b4;
    font-size: 11px;
    line-height: 1.25;
    margin-top: 4px;
}


/* =========================================================
   FASE 17.5.2 - Cierre visual / responsive / identidad global
   ========================================================= */

/* Login: misma identidad Altcom que el interior del CRM */
.login-brand .altcom-login-logo {
    overflow: hidden;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.login-brand .altcom-login-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 12px;
}

/* Evitar que textos largos rompan tarjetas, encabezados o modales */
.kanban-card,
.crm-conversation-item,
.modal-dialog,
.modal-body {
    min-width: 0;
}
.kanban-card strong,
.crm-conversation-item strong,
.modal-header strong {
    overflow-wrap: anywhere;
}

/* Tablas y contenido ancho: scroll horizontal sólo cuando haga falta */
.modal-body .table-responsive,
.crm-config-section .table-responsive {
    max-width: 100%;
    overflow-x: auto;
}

/* Ajuste conservador para escritorio reducido / zoom alto */
@media (max-width: 1180px) {
    .topbar-user .user-info {
        display: none;
    }
    .modal-dialog.modal-xl,
    #crmDetalleModal > .modal-dialog {
        width: calc(100vw - 28px);
        max-width: calc(100vw - 28px);
    }
}

/* Tablet / viewport estrecho */
@media (max-width: 900px) {
    .sidebar-brand .altcom-sidebar-brand-text span {
        max-width: 125px;
    }
    #crmDetalleModal > .modal-dialog > .modal-footer {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* Móvil: las acciones siguen visibles y claramente separadas */
@media (max-width: 640px) {
    #crmDetalleModal > .modal-dialog > .modal-footer {
        gap: 10px !important;
    }
    #crmDetalleModal > .modal-dialog > .modal-footer [data-crm-close="detail"],
    #crmDetalleModal > .modal-dialog > .modal-footer #crmFinalizarAtencion {
        width: auto !important;
        max-width: calc(50% - 5px);
        white-space: nowrap;
    }
}

/* =========================================================
   FASE 18.1 - Dashboard CRM ejecutivo y omnicanal
   ========================================================= */
.crm-dashboard-page{position:relative;padding-bottom:42px}.crm-dashboard-header{align-items:flex-end}.crm-dashboard-header .eyebrow{display:block;margin-bottom:5px;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.crm-dashboard-status{display:flex;align-items:center;gap:8px;color:#475569;font-size:12px}.crm-dashboard-status small{color:#94a3b8;margin-left:4px}.crm-live-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}
.crm-dashboard-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;padding:15px 16px;border:1px solid #e6ebf2;border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.05)}.crm-dashboard-filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;min-width:0}.crm-dashboard-filters label{display:flex;flex-direction:column;gap:5px;min-width:120px}.crm-dashboard-filters label>span{font-size:11px;font-weight:700;color:#64748b}.crm-dashboard-filters select,.crm-dashboard-filters input{height:38px;min-width:120px;padding:0 10px;border:1px solid #dbe3ee;border-radius:10px;background:#f8fafc;color:#0f172a;font-size:12px;outline:none}.crm-dashboard-filters select:focus,.crm-dashboard-filters input:focus{border-color:#94b7ee;box-shadow:0 0 0 3px rgba(59,130,246,.09);background:#fff}.crm-dashboard-refresh{height:38px;white-space:nowrap}
.crm-channel-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.crm-channel-health-item{position:relative;display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid #e6ebf2;border-radius:14px;background:#fff;box-shadow:0 6px 22px rgba(15,23,42,.045)}.crm-channel-health-item img{width:24px;height:24px;object-fit:contain}.crm-channel-health-item div{min-width:0;display:flex;flex-direction:column}.crm-channel-health-item strong{font-size:12px;color:#0f172a}.crm-channel-health-item span{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-channel-health-item i{margin-left:auto;width:8px;height:8px;border-radius:50%;background:#cbd5e1}.crm-channel-health-item.is-active i{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.10)}
.crm-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.crm-kpi-card{position:relative;overflow:hidden;min-height:132px;padding:16px 17px;border:1px solid #e6ebf2;border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.055)}.crm-kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--kpi,#64748b)}.crm-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#64748b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.crm-kpi-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:color-mix(in srgb,var(--kpi,#64748b) 10%,white);color:var(--kpi,#64748b);font-size:14px;font-weight:900}.crm-kpi-card>strong{display:block;margin-top:12px;color:#0f172a;font-size:25px;line-height:1;font-weight:800;letter-spacing:-.03em}.crm-kpi-card>small{display:block;margin-top:9px;color:#64748b;font-size:11px;line-height:1.35}.crm-kpi-card>small b{color:#334155}.crm-kpi-blue{--kpi:#2563eb}.crm-kpi-red{--kpi:#dc2626}.crm-kpi-cyan{--kpi:#0891b2}.crm-kpi-purple{--kpi:#7c3aed}.crm-kpi-green{--kpi:#16a34a}.crm-kpi-amber{--kpi:#d97706}.crm-kpi-indigo{--kpi:#4f46e5}.crm-kpi-slate{--kpi:#475569}
.crm-dashboard-grid{display:grid;gap:16px;margin-bottom:16px}.crm-dashboard-grid-main{grid-template-columns:minmax(0,2fr) minmax(310px,.85fr)}.crm-dashboard-grid-halves{grid-template-columns:1fr 1fr}.crm-dashboard-grid-thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.crm-dashboard-panel{min-width:0;padding:17px;border:1px solid #e5eaf1;border-radius:17px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.05)}.crm-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.crm-panel-head h2{margin:0;color:#0f172a;font-size:15px;font-weight:800}.crm-panel-head p{margin:4px 0 0;color:#7b8798;font-size:11px;line-height:1.35}.crm-panel-head>a{color:#2563eb;font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}.crm-panel-head>a:hover{text-decoration:underline}.crm-panel-badge{padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:700;white-space:nowrap}
.crm-line-chart{position:relative;min-height:300px}.crm-line-chart svg{display:block;width:100%;height:275px;overflow:visible}.crm-line-chart .grid{stroke:#edf1f6;stroke-width:1}.crm-line-chart .axis{fill:#94a3b8;font-size:10px}.crm-line-chart .line{fill:none;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.crm-line-chart .line.in{stroke:#2563eb}.crm-line-chart .line.out{stroke:#10b981}.crm-line-chart .dot{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.crm-line-chart .dot.in{fill:#2563eb}.crm-line-chart .dot.out{fill:#10b981}.crm-chart-legend{display:flex;justify-content:flex-end;gap:15px;margin-bottom:-4px;color:#64748b;font-size:10px}.crm-chart-legend span{display:flex;align-items:center;gap:6px}.crm-chart-legend i{width:9px;height:9px;border-radius:50%}.crm-chart-legend i.in{background:#2563eb}.crm-chart-legend i.out{background:#10b981}
.crm-channel-donut-wrap{display:flex;align-items:center;justify-content:center;gap:25px;min-height:276px}.crm-channel-donut{position:relative;flex:0 0 164px;width:164px;height:164px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.crm-channel-donut:after{content:"";position:absolute;inset:24px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #eef2f7}.crm-channel-donut span,.crm-channel-donut small{position:relative;z-index:1}.crm-channel-donut span{font-size:27px;font-weight:800;color:#0f172a}.crm-channel-donut small{margin-top:2px;color:#94a3b8;font-size:9px}.crm-channel-legend{display:flex;flex:1;flex-direction:column;gap:8px;min-width:145px}.crm-channel-legend>div{display:grid;grid-template-columns:8px 19px minmax(0,1fr) auto auto;align-items:center;gap:7px;font-size:10px}.crm-channel-legend-dot{width:8px;height:8px;border-radius:50%}.crm-channel-legend img{width:17px;height:17px;object-fit:contain}.crm-channel-legend strong{color:#334155;font-size:10px;white-space:nowrap}.crm-channel-legend b{color:#0f172a}.crm-channel-legend small{color:#94a3b8}
.crm-funnel,.crm-horizontal-bars{display:flex;flex-direction:column;gap:11px;min-height:225px}.crm-funnel-row{display:grid;grid-template-columns:138px minmax(0,1fr);gap:12px;align-items:center}.crm-funnel-label{display:flex;flex-direction:column;min-width:0}.crm-funnel-label strong{color:#334155;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-funnel-label span{margin-top:2px;color:#94a3b8;font-size:9px}.crm-funnel-track{height:29px;border-radius:9px;background:#f1f5f9;overflow:hidden}.crm-funnel-fill{height:100%;display:flex;align-items:center;justify-content:flex-end;padding:0 9px;border-radius:9px;background:linear-gradient(90deg,#dbeafe,#93c5fd);color:#1e3a8a;font-size:9px;font-weight:800;white-space:nowrap}.crm-funnel-row.is-won .crm-funnel-fill{background:linear-gradient(90deg,#dcfce7,#86efac);color:#166534}.crm-funnel-row.is-lost .crm-funnel-fill{background:linear-gradient(90deg,#fee2e2,#fca5a5);color:#991b1b}.crm-bar-row>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;color:#475569;font-size:11px}.crm-bar-row b{color:#0f172a}.crm-bar-track{height:10px;border-radius:999px;background:#edf2f7;overflow:hidden}.crm-bar-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#8b5cf6)}
.crm-team-panel{margin-bottom:16px}.crm-dashboard-table{width:100%;border-collapse:collapse;font-size:11px}.crm-dashboard-table th{text-align:left;padding:9px 10px;border-bottom:1px solid #e9edf3;color:#64748b;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.crm-dashboard-table td{padding:11px 10px;border-bottom:1px solid #f0f3f7;color:#475569;vertical-align:middle}.crm-dashboard-table tr:last-child td{border-bottom:0}.crm-dashboard-table td:first-child strong{display:block;color:#0f172a}.crm-dashboard-table td:first-child small{display:block;margin-top:2px;color:#94a3b8}.crm-table-pill{display:inline-flex;align-items:center;justify-content:center;min-width:27px;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:800}.crm-table-pill.is-good{background:#ecfdf3;color:#15803d}.crm-table-pill.is-bad{background:#fff1f2;color:#be123c}.crm-table-empty{text-align:center!important;color:#94a3b8!important;padding:28px!important}
.crm-list-panel{padding-bottom:10px}.crm-dashboard-list{display:flex;flex-direction:column;margin:0 -5px}.crm-dashboard-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 8px;border-radius:11px;text-decoration:none;transition:.15s ease}.crm-dashboard-list-item:not(.is-static):hover{background:#f8fafc}.crm-dashboard-list-item+.crm-dashboard-list-item{border-top:1px solid #f1f4f8}.crm-dashboard-list-main{min-width:0;display:flex;flex-direction:column}.crm-dashboard-list-main strong{max-width:210px;color:#1e293b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-dashboard-list-main>span{display:flex;align-items:center;gap:4px;margin-top:4px;color:#94a3b8;font-size:9px;min-width:0}.crm-dashboard-list-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;white-space:nowrap}.crm-dashboard-list-side small{color:#94a3b8;font-size:9px}.crm-mini-channel{display:inline-flex;align-items:center;gap:4px;color:#64748b}.crm-mini-channel img{width:14px;height:14px;object-fit:contain}.crm-unread-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:9px}.crm-date-chip{padding:4px 7px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:9px}.crm-date-chip.is-overdue{background:#fff1f2;color:#dc2626}.crm-sale-value{color:#15803d;font-size:11px}.crm-empty-state,.crm-empty-mini{display:grid;place-items:center;min-height:130px;color:#94a3b8;font-size:11px;text-align:center}.crm-empty-mini{min-height:80px}
.crm-dashboard-loading{position:fixed;right:22px;bottom:22px;z-index:1500;display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid #dbe3ec;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 12px 34px rgba(15,23,42,.14);color:#475569;font-size:11px}.crm-dashboard-spinner{width:16px;height:16px;border:2px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:crmDashSpin .7s linear infinite}@keyframes crmDashSpin{to{transform:rotate(360deg)}}
@media (max-width:1350px){.crm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-dashboard-grid-thirds{grid-template-columns:1fr 1fr}.crm-dashboard-grid-thirds>article:last-child{grid-column:1/-1}.crm-channel-health{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1080px){.crm-dashboard-grid-main,.crm-dashboard-grid-halves{grid-template-columns:1fr}.crm-dashboard-toolbar{align-items:stretch;flex-direction:column}.crm-dashboard-refresh{align-self:flex-end}.crm-channel-donut-wrap{justify-content:flex-start}.crm-dashboard-grid-thirds{grid-template-columns:1fr}.crm-dashboard-grid-thirds>article:last-child{grid-column:auto}}
@media (max-width:720px){.crm-kpi-grid,.crm-channel-health{grid-template-columns:1fr}.crm-dashboard-filters label{flex:1 1 145px}.crm-dashboard-refresh{width:100%}.crm-channel-donut-wrap{flex-direction:column}.crm-funnel-row{grid-template-columns:110px minmax(0,1fr)}.crm-dashboard-panel{padding:14px}.crm-dashboard-table{min-width:720px}.crm-dashboard-header{align-items:flex-start;gap:10px;flex-direction:column}.crm-dashboard-status{align-self:flex-start}}

/* FASE 18.2 - Inteligencia comercial */
.crm-comparison-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.crm-comparison-card{border:1px solid #e3eaf3;border-radius:14px;padding:16px;background:#fbfdff}.crm-comparison-card>span{display:block;color:#64748b;font-size:12px;margin-bottom:7px}.crm-comparison-card>strong{display:block;font-size:24px;color:#10233f;margin-bottom:10px}.crm-comparison-card>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.crm-comparison-card b{font-size:12px;border-radius:999px;padding:4px 8px}.crm-comparison-card b.is-up{color:#087443;background:#e8f8ef}.crm-comparison-card b.is-down{color:#b42318;background:#fff0ef}.crm-comparison-card b.is-flat{color:#64748b;background:#eef2f7}.crm-comparison-card small{color:#7b8ba3}.crm-commercial-funnel,.crm-conversion-list{display:flex;flex-direction:column;gap:14px}.crm-commercial-funnel-row>div:first-child,.crm-conversion-type>div:first-child{display:flex;align-items:center;gap:10px;margin-bottom:6px}.crm-commercial-funnel-row strong,.crm-conversion-type strong{color:#10233f}.crm-commercial-funnel-row span,.crm-conversion-type span{font-size:12px;color:#718198}.crm-commercial-funnel-row>div:last-child,.crm-conversion-type>div:last-child{height:10px;border-radius:999px;background:#eaf0f6;overflow:hidden}.crm-commercial-funnel-row i,.crm-conversion-type i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#315fca,#7657ef)}.crm-conversion-type b{margin-left:auto;color:#315fca}.crm-stale-days{color:#b42318;background:#fff0ef;border-radius:999px;padding:4px 8px;font-size:12px}@media(max-width:900px){.crm-comparison-grid{grid-template-columns:1fr}}


/* Fase 18.3 - Atención y tiempos de respuesta */
.crm-sla-panel{margin-top:18px}.crm-sla-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:4px 0 18px}.crm-sla-summary>div{border:1px solid #e5eaf1;border-radius:12px;padding:14px;background:#fff}.crm-sla-summary span,.crm-sla-summary small{display:block;color:#667085}.crm-sla-summary strong{display:block;font-size:1.55rem;margin:5px 0;color:#172033}.crm-sla-detail h3{font-size:.92rem;margin:0 0 10px;color:#344054}.crm-sla-buckets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.crm-sla-bucket{border:1px solid #e5eaf1;border-radius:12px;padding:13px}.crm-sla-bucket strong,.crm-sla-bucket span,.crm-sla-bucket small{display:block}.crm-sla-bucket strong{font-size:1.45rem}.crm-sla-bucket span{font-weight:700;margin:3px 0}.crm-sla-bucket small{color:#667085}.crm-sla-bucket.is-good{background:#f4fbf7}.crm-sla-bucket.is-warn{background:#fffaf0}.crm-sla-bucket.is-bad{background:#fff5f5}@media(max-width:900px){.crm-sla-summary,.crm-sla-buckets{grid-template-columns:1fr}}


/* Fase 18.4.1 - Identidad legal discreta en el pie del menú lateral */
.altcom-sidebar-copyright{
    padding: 8px 14px 10px;
    text-align: center;
    font-size: 11px;
    line-height: 1.3;
    color: rgba(255,255,255,.48);
    white-space: nowrap;
}


/* Fase 18.4.2 - Acciones modernas del topbar */
.topbar-crm-notifications{position:relative;display:flex;align-items:center;gap:8px}
.topbar-notification-btn,.topbar-theme-btn{
 width:36px;height:36px;border:1px solid #d8dee8;border-radius:9px;background:#fff;color:#25334a;
 display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer;
 transition:background .18s,border-color .18s,box-shadow .18s,transform .18s
}
.topbar-notification-btn:hover,.topbar-theme-btn:hover{background:#f7f9fc;border-color:#bfc9d8;box-shadow:0 3px 10px rgba(24,39,75,.08);transform:translateY(-1px)}
.topbar-action-icon,.theme-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.topbar-action-separator{width:1px;height:24px;background:#e1e6ee;margin:0 2px}
.theme-icon-moon{display:none}.topbar-theme-btn.is-dark .theme-icon-sun{display:none}.topbar-theme-btn.is-dark .theme-icon-moon{display:block}
.topbar-notification-count{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:#ef4056;color:#fff;border:2px solid #fff;font-size:10px;font-weight:800;line-height:14px;text-align:center}
.topbar-notification-panel{
 position:absolute;z-index:2100;top:calc(100% + 10px);right:0;width:min(390px,calc(100vw - 24px));
 overflow:hidden;border:1px solid #dfe5ee;border-radius:14px;background:#fff;color:#172033;
 box-shadow:0 18px 45px rgba(15,23,42,.18)
}
.topbar-notification-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #edf1f5;background:#f8fafc}
.topbar-notification-panel-head strong{font-size:13px;color:#172033}.topbar-notification-panel-head small{color:#64748b;font-size:11px;white-space:nowrap}
.topbar-notification-list{display:flex;flex-direction:column;max-height:min(430px,calc(100vh - 100px));overflow-x:hidden;overflow-y:auto}
.topbar-notification-item{--notification-channel:#78909c;--notification-soft:#f4f7f9;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;width:100%;padding:12px 15px 12px 12px;border:0;border-left:3px solid var(--notification-channel);border-bottom:1px solid #edf1f5;border-radius:0;background:transparent;color:#25334a;font:inherit;text-align:left;cursor:pointer}
.topbar-notification-item.channel-whatsapp{--notification-channel:#25b95f;--notification-soft:#eaf8ef}.topbar-notification-item.channel-facebook{--notification-channel:#1877f2;--notification-soft:#edf4ff}.topbar-notification-item.channel-instagram{--notification-channel:#c13584;--notification-soft:#fff0f7}.topbar-notification-item.channel-email{--notification-channel:#0078d4;--notification-soft:#e8f3fb}
.topbar-notification-item:last-child{border-bottom:0}.topbar-notification-item:hover{background:#f6f9fd}
.topbar-channel-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--notification-soft);color:var(--notification-channel)}.topbar-channel-icon svg{display:block;width:18px;height:18px;fill:currentColor}.channel-instagram .topbar-channel-icon svg,.channel-email .topbar-channel-icon svg,.channel-manual .topbar-channel-icon svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.channel-instagram .topbar-channel-icon .ig-dot{fill:currentColor;stroke:none}
.topbar-notification-content{display:block;min-width:0}.topbar-notification-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.topbar-notification-item strong{min-width:0;overflow:hidden;color:#172033;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.topbar-notification-item b{display:grid;place-items:center;flex:0 0 auto;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#ef4056;color:#fff;font-size:10px}
.topbar-notification-message,.topbar-notification-content>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-notification-message{margin-top:5px;color:#475569;font-size:11px}.topbar-notification-content>small{margin-top:4px;color:var(--notification-channel);font-size:10px;font-weight:600}
.topbar-notification-empty{padding:24px 16px;color:#64748b;font-size:12px;text-align:center}
@media(max-width:640px){.topbar-notification-panel{position:fixed;top:66px;right:12px;left:12px;width:auto}.topbar-notification-list{max-height:calc(100vh - 140px)}}

/* Modo oscuro: capa visual, sin alterar la lógica ni los datos */
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="dark"] body,
html[data-theme="dark"] .app-body{background:#0f1724;color:#dce4ef}
html[data-theme="dark"] .main-content,
html[data-theme="dark"] .content,
html[data-theme="dark"] .page-content{background:#111a28;color:#dce4ef}
html[data-theme="dark"] .topbar{background:#172235;border-color:#2b3a50;color:#eef4fb}
html[data-theme="dark"] .topbar-title,
html[data-theme="dark"] .user-info strong{color:#eef4fb}
html[data-theme="dark"] .user-info small{color:#93a4ba}
html[data-theme="dark"] .user-avatar{background:#26364e;color:#8fc0ff}
html[data-theme="dark"] .topbar-notification-btn,
html[data-theme="dark"] .topbar-theme-btn{background:#1b293d;border-color:#34445c;color:#edf3fb}
html[data-theme="dark"] .topbar-notification-btn:hover,
html[data-theme="dark"] .topbar-theme-btn:hover{background:#24354d;border-color:#50627c}
html[data-theme="dark"] .topbar-action-separator{background:#34445c}
html[data-theme="dark"] .topbar-notification-count{border-color:#172235}
html[data-theme="dark"] .card,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .crm-dashboard-panel,
html[data-theme="dark"] .crm-kpi-card,
html[data-theme="dark"] .crm-filter-bar,
html[data-theme="dark"] .crm-dashboard-list-item,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .modal-dialog,
html[data-theme="dark"] .crm-stage,
html[data-theme="dark"] .crm-card{background:#182335!important;border-color:#2d3b50!important;color:#dce4ef}
html[data-theme="dark"] .crm-stage-header,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer{background:#1c293c!important;border-color:#2d3b50!important;color:#eef4fb}
html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3,
html[data-theme="dark"] h4,html[data-theme="dark"] strong{color:#eef4fb}
html[data-theme="dark"] p,html[data-theme="dark"] small,html[data-theme="dark"] label,
html[data-theme="dark"] .crm-panel-head p{color:#9dacc0}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{
 background:#101a28!important;border-color:#3a4960!important;color:#e6edf6!important
}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#71839b}
html[data-theme="dark"] table,html[data-theme="dark"] .crm-dashboard-table{color:#dce4ef}
html[data-theme="dark"] th{background:#1d2a3d!important;color:#b8c5d6;border-color:#304057!important}
html[data-theme="dark"] td{border-color:#2b394d!important}
html[data-theme="dark"] .crm-dashboard-list-item:hover{background:#202e43!important}
html[data-theme="dark"] .topbar-notification-panel{background:#182335;border-color:#34445c;color:#dce4ef}
html[data-theme="dark"] .topbar-notification-panel-head{background:#1c293c;border-color:#2d3b50}
html[data-theme="dark"] .topbar-notification-panel-head strong{color:#eef4fb}
html[data-theme="dark"] .topbar-notification-item{color:#dce4ef;border-color:#2d3b50}
html[data-theme="dark"] .topbar-notification-item strong{color:#eef4fb}
html[data-theme="dark"] .topbar-notification-message{color:#c2cedd}
html[data-theme="dark"] .topbar-notification-item:hover{background:#202e43}


/* Fase 18.4.3 - Modales ERP consistentes: encabezado y acciones siempre visibles */
#clienteModal .cliente-modal-dialog,
#productoModal .product-modal-dialog{
    display:flex;
    flex-direction:column;
    max-height:calc(100vh - 40px);
    overflow:hidden;
}
#clienteModal .modal-header,
#productoModal .modal-header{
    flex:0 0 auto;
    position:relative;
    z-index:3;
}
#clienteModal .modal-form-layout{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    overflow:hidden;
}
#clienteModal .modal-body,
#productoModal .modal-body{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
}
#clienteModal .modal-footer,
#productoModal .product-modal-footer{
    flex:0 0 auto;
    position:relative;
    z-index:3;
}
#productoModal .product-modal-footer{
    justify-content:flex-end;
}
@media(max-width:700px){
    #clienteModal .cliente-modal-dialog,
    #productoModal .product-modal-dialog{
        max-height:calc(100vh - 16px);
    }
}

/* Fase 18.4.4 - Reporte histórico de ventas originadas por CRM */
.crm-sales-report-page{position:relative}.crm-sales-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.crm-sales-report-filters .crm-dashboard-filters{align-items:end}.crm-sales-table td,.crm-sales-table th{white-space:nowrap}.crm-sales-table td:nth-child(4){white-space:normal;min-width:220px}.text-right{text-align:right}.crm-sales-table a{font-weight:700;color:#245a9b;text-decoration:none}.crm-sales-table a:hover{text-decoration:underline}
html[data-theme="dark"] .crm-sales-table a{color:#8fc0ff}
@media(max-width:850px){.crm-sales-summary{grid-template-columns:1fr}.crm-sales-report-page .page-header{align-items:flex-start;gap:12px;flex-direction:column}}


/* Fase 18.4.5 - Histórico CRM por cliente */
.cliente-actions{display:flex;justify-content:center;align-items:center;gap:7px;min-width:174px}.cliente-action{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;border:1px solid #d4dee8;border-radius:10px;background:#f7fafc;color:#315b7d;cursor:pointer;text-decoration:none;transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s}.cliente-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cliente-action:hover{transform:translateY(-1px);background:#eaf3fb;border-color:#8eb6d8;color:#164f7a;box-shadow:0 4px 10px rgba(37,83,119,.12)}.cliente-visit{color:#22705a;background:#eef9f4;border-color:#b9ddcf}.cliente-visit:hover{color:#155944;background:#def3e9;border-color:#76b99f}.cliente-edit{color:#5c6470}.cliente-modal-footer{display:flex;align-items:center}.modal-footer-spacer{flex:1}
html[data-theme="dark"] .cliente-action{background:#222b33;border-color:#3b4b58;color:#9cc9ec}html[data-theme="dark"] .cliente-action:hover{background:#293b49;border-color:#5c89aa;color:#d2eaff}html[data-theme="dark"] .cliente-visit{background:#1f342e;border-color:#365f51;color:#88cfb5}
.cliente-visita-dialog{max-width:590px}.visita-status-card{display:flex;align-items:center;gap:13px;padding:14px 16px;border:1px solid #dce5ec;border-radius:12px;background:#f7fafc}.visita-status-card strong,.visita-status-card small{display:block}.visita-status-card small{margin-top:3px;color:var(--muted)}.visita-status-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e6f0f8;color:#245e88;font-size:24px}.visita-status-card.is-active{background:#eef9f4;border-color:#b8ddcf}.visita-status-card.is-error{background:#fff2f1;border-color:#efc1bc}.visita-active-summary{display:flex;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 14px;border-left:4px solid #2b8a68;background:#f2f8f5}.visita-active-summary span{color:var(--muted);font-size:.86rem}.visita-privacy-note{margin-top:16px;padding:10px 12px;border-radius:8px;background:#f3f6f8;color:var(--muted);font-size:.82rem}html[data-theme="dark"] .visita-status-card,html[data-theme="dark"] .visita-privacy-note{background:#20282e;border-color:#394750}html[data-theme="dark"] .visita-active-summary{background:#1e312b}
.crm-client-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.crm-history-date{font-size:1.05rem!important}.crm-history-grid{margin:16px 0}.crm-history-item{text-decoration:none;color:inherit}.crm-client-history-page .crm-dashboard-table a{font-weight:700;color:#245a9b;text-decoration:none}.crm-client-history-page .crm-dashboard-table a:hover{text-decoration:underline}
.crm-visits-history{margin-bottom:16px}.crm-visit-end,.crm-visit-accuracy{display:block;margin-top:4px;color:var(--muted);font-size:.78rem}.crm-map-link{display:inline-flex;align-items:center;gap:5px}.crm-map-link:before{content:'⌖';font-size:1.05rem}
.crm-history-filters{margin-bottom:16px}.crm-history-filters .crm-dashboard-filters{align-items:end}.crm-client-history-page .table-pagination{padding-top:12px}.crm-visits-report-page .crm-dashboard-table td{vertical-align:top}.crm-visits-report-page .crm-dashboard-table small{display:block;margin-top:3px;color:var(--muted)}.crm-visits-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:1200px){.crm-visits-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.crm-visits-kpis{grid-template-columns:1fr}}
html[data-theme="dark"] .crm-client-history-page .crm-dashboard-table a{color:#8fc0ff}
@media(max-width:1000px){.crm-client-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.crm-client-summary{grid-template-columns:1fr}.cliente-modal-footer{gap:8px;flex-wrap:wrap}.modal-footer-spacer{display:none}.cliente-historial-btn{width:100%;text-align:center}}

/* Fase 18.5.1 - Iniciar contacto */
.crm-contact-start-dialog{max-width:720px}.crm-contact-channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.crm-contact-channel{appearance:none;text-align:left;border:1px solid #d9e2e9;background:#fff;border-radius:10px;padding:15px;cursor:pointer;color:inherit}.crm-contact-channel:hover:not(.disabled){border-color:#4b7fab;box-shadow:0 3px 12px rgba(0,0,0,.07)}.crm-contact-channel strong,.crm-contact-channel span{display:block}.crm-contact-channel span{font-size:.84rem;color:#6b7780;margin-top:4px}.crm-contact-channel.disabled{opacity:.5;cursor:not-allowed}.crm-contact-compose{margin-top:18px;padding-top:18px;border-top:1px solid #e4e9ed}.crm-template-preview{white-space:pre-wrap;background:#f5f7f9;border:1px solid #e0e6ea;border-radius:8px;padding:13px;margin-bottom:12px}html[data-theme="dark"] .crm-contact-channel{background:#20262c;border-color:#3b4650}html[data-theme="dark"] .crm-contact-channel span{color:#aeb8c0}html[data-theme="dark"] .crm-template-preview{background:#171c21;border-color:#39434b}@media(max-width:650px){.crm-contact-channel-grid{grid-template-columns:1fr}}

/* Fase 18.5.2 - Contacto desde Caso CRM */
.crm-case-contact-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.crm-case-contact-action small{color:#6b7780}html[data-theme="dark"] .crm-case-contact-action small{color:#aeb8c0}

/* Fase 18.5.2.2 - selector persistente de conversaciones del mismo Caso */
.crm-case-conversation-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface,#fff)}
.crm-case-conversation-tab{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 11px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--text);cursor:pointer;font:inherit}
.crm-case-conversation-tab:hover{background:var(--hover,#f4f7fb)}
.crm-case-conversation-tab.active{border-color:#315fca;box-shadow:0 0 0 1px #315fca inset;background:rgba(49,95,202,.08)}
.crm-case-conversation-tab .crm-channel-png{width:20px;height:20px}
.crm-case-conversation-tab span{font-weight:700}
.crm-case-conversation-tab i{font-style:normal;font-size:10px;color:var(--muted);border-left:1px solid var(--border);padding-left:7px}
/* Fase 18.5.3.2 - Reactivación de clientes */
.crm-react-toolbar{align-items:end}.crm-react-kpis,.crm-react-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0 18px}.crm-react-kpis>div,.crm-react-summary>div{border:1px solid var(--border-color,#dfe5ec);border-radius:12px;padding:14px;background:var(--card-bg,#fff)}.crm-react-kpis strong,.crm-react-summary strong{display:block;font-size:1.15rem}.crm-react-kpis span,.crm-react-summary span{display:block;margin-top:4px;font-size:.82rem;opacity:.72}.crm-react-status{display:inline-block;padding:5px 9px;border-radius:999px;background:rgba(33,116,190,.1);font-weight:600;font-size:.8rem}.data-table td small{display:block;margin-top:3px;opacity:.68}

/* Fase 18.5.3.2.1 - Reactivacion: modal consistente, gestion e historial */
.crm-react-modal-dialog{height:min(92vh,900px);max-height:92vh;overflow:hidden;display:flex;flex-direction:column}
.crm-react-modal-dialog .modal-header{flex:0 0 auto}
.crm-react-modal-dialog .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}
.crm-react-modal-dialog .modal-footer{flex:0 0 auto}
.crm-react-management{display:flex;flex-direction:column;gap:2px;min-width:150px}.crm-react-management strong{font-size:.82rem}.crm-react-management small,.crm-react-no-management{font-size:.76rem;color:var(--muted)}
.crm-react-history{display:flex;flex-direction:column;gap:9px;margin-top:8px}.crm-react-history-item{border:1px solid var(--border);border-radius:10px;padding:11px 13px;background:var(--panel,#fff)}.crm-react-history-head{display:flex;justify-content:space-between;gap:12px}.crm-react-history-head span,.crm-react-history-meta{font-size:.78rem;color:var(--muted)}.crm-react-history-meta{margin-top:3px}.crm-react-history-item p{margin:7px 0 0;white-space:pre-wrap}

/* Fase 18.5.3.2.2 - control y recuperación automática */
.crm-react-control-card{margin-bottom:14px}.crm-react-control-head h2{margin:0;font-size:1.05rem}.crm-react-control-head p{margin:4px 0 0;color:var(--muted);font-size:.84rem}.crm-react-management-kpis{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px;margin-top:14px}.crm-react-management-kpis button{appearance:none;text-align:left;border:1px solid var(--border);border-radius:12px;background:var(--panel,#fff);padding:12px 13px;color:inherit;cursor:pointer;transition:.15s ease}.crm-react-management-kpis button:hover,.crm-react-management-kpis button.active{border-color:var(--primary);box-shadow:0 0 0 2px rgba(33,116,190,.08)}.crm-react-management-kpis button strong{display:block;font-size:1.08rem}.crm-react-management-kpis button span{display:block;margin-top:4px;font-size:.76rem;color:var(--muted)}.crm-react-management-kpis .money-kpi strong{color:var(--primary)}
.crm-react-management.recovered strong,.crm-react-return strong{color:#15803d}.crm-react-return{display:flex;flex-direction:column;gap:2px;min-width:110px}.crm-react-return small{font-size:.75rem;color:var(--muted)}.crm-react-return span{font-size:.82rem;font-weight:700}.crm-react-recovery-banner{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid rgba(22,163,74,.28);background:rgba(22,163,74,.08);border-radius:12px;padding:12px 14px;margin-bottom:16px}.crm-react-recovery-banner>div{display:flex;flex-direction:column;gap:3px}.crm-react-recovery-banner strong{color:#15803d}.crm-react-recovery-banner span{font-size:.8rem;color:var(--muted)}.crm-react-recovery-sale{text-align:right}.form-help{display:block;margin-top:5px;font-size:.74rem;color:var(--muted)}.page-ellipsis{display:inline-flex;align-items:center;padding:0 3px;color:var(--muted)}
@media(max-width:1200px){.crm-react-management-kpis{grid-template-columns:repeat(4,minmax(130px,1fr))}}@media(max-width:760px){.crm-react-management-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-react-recovery-banner{align-items:flex-start;flex-direction:column}.crm-react-recovery-sale{text-align:left}}

/* Fase 18.5.4.1 - Plantillas centralizadas de comunicación */
#pcModal .modal-dialog{max-width:820px}#pcModal textarea{resize:vertical;min-height:180px}#pcTabla td:nth-child(4){max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Fase 18.5.5.1 - Campañas CRM */
.crm-campaign-kpis{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px;margin:14px 0 18px}
.crm-campaign-kpis>div{border:1px solid var(--border-color,#dfe6ee);border-radius:10px;padding:12px;background:var(--card-bg,#fff)}
.crm-campaign-kpis strong{display:block;font-size:18px}.crm-campaign-kpis span{display:block;font-size:12px;color:var(--text-muted,#667085);margin-top:4px}
.crm-campaign-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:18px;align-items:start}
.crm-campaign-toolbar{grid-template-columns:180px 100px minmax(240px,1fr) 90px}
.crm-campaign-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;background:#eef2f6;color:#475467;text-transform:capitalize}
.crm-campaign-status.st-enviado,.crm-campaign-status.st-finalizada{background:#e8f7ef;color:#177245}.crm-campaign-status.st-respondido{background:#e8f1ff;color:#175ea8}.crm-campaign-status.st-error{background:#fdecec;color:#b42318}.crm-campaign-status.st-enviando{background:#fff4db;color:#946200}
@media(max-width:1180px){.crm-campaign-layout{grid-template-columns:1fr}.crm-campaign-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.crm-campaign-kpis{grid-template-columns:repeat(2,1fr)}.crm-campaign-toolbar{grid-template-columns:1fr}}

/* Fase 18.5.5.1 - ajustes de campañas: canales, progreso y selección masiva */
.crm-campaign-toolbar{grid-template-columns:170px 90px 190px minmax(220px,1fr) 90px}
.crm-campaign-unavailable{opacity:.62;background:rgba(148,163,184,.06)}
.crm-channel-ok{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#e8f7ef;color:#177245;font-size:11px;font-weight:700}
.crm-channel-missing{color:var(--text-muted,#667085);font-size:12px}
.crm-campaign-add-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.crm-campaign-case-link{display:inline-flex;align-items:center;font-weight:700;color:var(--primary,#245b9e);text-decoration:none;padding:4px 7px;border-radius:7px}
.crm-campaign-case-link:hover{text-decoration:underline;background:rgba(36,91,158,.08)}
.crm-campaign-send-wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.crm-campaign-progress{min-width:260px;display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid var(--border-color,#dfe6ee);border-radius:12px;background:var(--card-bg,#fff);box-shadow:0 4px 14px rgba(15,23,42,.06)}
.crm-campaign-progress.hidden{display:none}
.crm-campaign-progress>div{min-width:210px}.crm-campaign-progress strong{display:block;font-size:12px;margin-bottom:6px;color:var(--text-color,#243447)}
.crm-campaign-spinner{width:20px;height:20px;border:2px solid rgba(90,103,120,.22);border-top-color:currentColor;border-radius:50%;animation:crmCampaignSpin .8s linear infinite;flex:0 0 auto}
.crm-campaign-progress-track{height:5px;border-radius:999px;background:rgba(148,163,184,.2);overflow:hidden}.crm-campaign-progress-track span{display:block;width:0;height:100%;background:currentColor;border-radius:inherit;transition:width .25s ease}
@keyframes crmCampaignSpin{to{transform:rotate(360deg)}}
@media(max-width:1180px){.crm-campaign-toolbar{grid-template-columns:repeat(2,minmax(160px,1fr))}.crm-campaign-toolbar .grow{grid-column:1/-1}}
@media(max-width:700px){.crm-campaign-toolbar{grid-template-columns:1fr}.crm-campaign-toolbar .grow{grid-column:auto}.crm-campaign-send-wrap{justify-content:flex-start}.crm-campaign-progress{min-width:100%;width:100%}}
/* Fase 18.5.5.2 - Administración de campañas */
.crm-campaign-admin{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.crm-switch-label{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#52606d;margin-right:10px}.crm-campaign-add-actions{flex-wrap:wrap}.crm-campaign-status.st-procesando{background:#eef4ff;color:#245b9e}.crm-campaign-status.st-archivada{background:#f1f3f5;color:#667085}
#campRechazosModal .modal-dialog,#campModal .modal-dialog{max-height:88vh;display:flex;flex-direction:column}#campRechazosModal .modal-body,#campModal .modal-body{overflow:auto;min-height:0}

/* Fase 18.5.5.2.2 - Ajuste visual y métricas de campañas */
.crm-campaign-layout>div{min-width:0}
.crm-campaign-candidates-scroll,.crm-campaign-dest-scroll{max-height:460px;overflow:auto;border:1px solid var(--border-color,#e2e8f0);border-radius:10px}
.crm-campaign-candidates-scroll .data-table,.crm-campaign-dest-scroll .data-table{margin:0;min-width:100%}
.crm-campaign-candidates-scroll .data-table{min-width:920px}
.crm-campaign-dest-scroll .data-table{min-width:560px}
.crm-campaign-candidates-scroll thead th,.crm-campaign-dest-scroll thead th{position:sticky;top:0;z-index:2;background:var(--card-bg,#fff);box-shadow:0 1px 0 var(--border-color,#e2e8f0)}
.crm-campaign-status.st-rechazado{background:#fff0f0;color:#b42318}
.crm-campaign-reject-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:3px 7px;border-radius:999px;background:#fff0f0;color:#b42318;font-weight:700}
.crm-campaign-kpis{grid-template-columns:repeat(7,minmax(100px,1fr))}
@media(max-width:1280px){.crm-campaign-layout{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr)}.crm-campaign-kpis{grid-template-columns:repeat(4,minmax(110px,1fr))}}
@media(max-width:1100px){.crm-campaign-layout{grid-template-columns:1fr}.crm-campaign-candidates-scroll,.crm-campaign-dest-scroll{max-height:420px}}
@media(max-width:700px){.crm-campaign-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Fase 18.5.5.2.3 - Tracking y presentación simétrica de campañas */
.crm-campaign-layout{align-items:stretch;grid-template-columns:minmax(0,1.55fr) minmax(420px,.85fr)}
.crm-campaign-pane{min-width:0;display:flex;flex-direction:column}
.crm-campaign-pane-title{height:46px;display:flex;align-items:center;border-bottom:1px solid var(--border-color,#e1e7ef);margin-bottom:12px}
.crm-campaign-pane-title h3{margin:0}
.crm-campaign-candidates-scroll,.crm-campaign-dest-scroll{height:455px;max-height:455px;overflow:auto;border:1px solid var(--border-color,#e1e7ef);border-radius:10px;background:var(--card-bg,#fff)}
.crm-campaign-candidates-scroll table,.crm-campaign-dest-scroll table{margin:0;min-width:100%}
.crm-campaign-candidates-scroll thead th,.crm-campaign-dest-scroll thead th{position:sticky;top:0;z-index:3;background:var(--card-bg,#fff)}
.crm-campaign-dest-scroll{margin-top:78px}
.crm-campaign-metrics-modal{max-width:1180px}
.crm-campaign-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));gap:10px;margin-bottom:14px}
.crm-campaign-metric-grid>div{border:1px solid var(--border-color,#dfe6ee);border-radius:11px;padding:12px;background:var(--card-bg,#fff)}
.crm-campaign-metric-grid strong{display:block;font-size:18px}.crm-campaign-metric-grid span{display:block;color:var(--text-muted,#667085);font-size:12px;margin-top:3px}
.crm-campaign-metric-note{padding:10px 12px;border-radius:10px;background:rgba(59,130,246,.07);color:var(--text-muted,#52606d);font-size:12px;margin-bottom:18px}
.crm-campaign-metric-table{max-height:330px;overflow:auto}.crm-campaign-metric-table thead th{position:sticky;top:0;z-index:2;background:var(--card-bg,#fff)}
.crm-campaign-url{display:block;max-width:650px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1280px){.crm-campaign-layout{grid-template-columns:minmax(0,1.35fr) minmax(380px,.75fr)}.crm-campaign-metric-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}}
@media(max-width:1100px){.crm-campaign-layout{grid-template-columns:1fr}.crm-campaign-dest-scroll{margin-top:0}.crm-campaign-pane-title{height:auto;min-height:42px}.crm-campaign-metric-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* Fase 18.5.5.2.4 - filtros interactivos de metricas */
.crm-campaign-metric-card{appearance:none;-webkit-appearance:none;width:100%;text-align:left;font:inherit;color:inherit;border:1px solid var(--border-color,#dfe6ee);border-radius:11px;padding:12px;background:var(--card-bg,#fff);cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.crm-campaign-metric-card:hover{transform:translateY(-1px);border-color:#9fb7d5;box-shadow:0 5px 14px rgba(31,78,121,.08)}
.crm-campaign-metric-card.active{border-color:#245a97;background:rgba(36,90,151,.07);box-shadow:0 0 0 2px rgba(36,90,151,.10)}
.crm-campaign-metric-card strong{display:block;font-size:18px}.crm-campaign-metric-card span{display:block;color:var(--text-muted,#667085);font-size:12px;margin-top:3px}
.crm-campaign-metric-activity-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:4px 0 10px}.crm-campaign-metric-activity-head h3{margin:0}.crm-campaign-filter-caption{display:block;color:var(--text-muted,#667085);font-size:12px;margin-top:4px}.crm-campaign-reset-filter{white-space:nowrap}

/* Fase 18.5.5.2.7 - filtros/paginacion de destinatarios y acciones contextuales */
.crm-campaign-dest-toolbar{grid-template-columns:minmax(130px,1fr) minmax(120px,.85fr) 86px;min-height:78px;align-items:end}
.crm-campaign-dest-scroll{margin-top:0}
.crm-campaign-dest-toolbar .toolbar-field{min-width:0}
.crm-campaign-dest-toolbar select{width:100%}
.crm-campaign-pane>.table-pagination{min-height:42px;align-items:center}
@media(max-width:1280px){.crm-campaign-dest-toolbar{grid-template-columns:1fr 1fr 80px}}
@media(max-width:1100px){.crm-campaign-dest-toolbar{min-height:0;grid-template-columns:1fr 1fr 90px}}
@media(max-width:700px){.crm-campaign-dest-toolbar{grid-template-columns:1fr}}

/* Fase 19.4.2.2 - Cuenta de correo: encabezado/pie fijos */
#emailModal .crm-email-modal-dialog{height:min(92vh,900px);max-height:92vh;overflow:hidden;display:flex;flex-direction:column}
#emailModal .modal-header{flex:0 0 auto;position:relative;z-index:3}
#emailModal #emailForm{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}
#emailModal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
#emailModal .modal-footer{flex:0 0 auto;position:relative;z-index:3}
@media(max-width:700px){#emailModal .crm-email-modal-dialog{height:calc(100vh - 16px);max-height:calc(100vh - 16px)}}

/* Fase 19.5.5.6 - Selectores consistentes en Configuracion WhatsApp */
.crm-config-select{height:40px;border:1px solid #d8e0e8;border-radius:9px;background:#fff;color:var(--text);padding:0 36px 0 11px;outline:none;box-shadow:0 1px 2px rgba(15,23,42,.02);transition:border-color .15s ease,box-shadow .15s ease}
.crm-config-select:focus{border-color:#8ca9c7;box-shadow:0 0 0 3px rgba(36,89,149,.08)}
.crm-config-select-wide{min-width:300px;max-width:440px}
html[data-theme="dark"] .crm-config-select{background:#17202b;color:#e5edf5;border-color:#344253}
@media(max-width:760px){.crm-config-select-wide{min-width:100%;max-width:100%}}


/* Fase 19.5.5.7 - ajustes puntuales solicitados */
.crm-react-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.crm-react-table{font-size:12.5px}
.crm-react-table th,.crm-react-table td{padding:10px 7px}
.crm-react-table th:first-child,.crm-react-table td:first-child{white-space:normal;min-width:260px}
.crm-react-table th:last-child,.crm-react-table td:last-child{padding-left:6px;padding-right:6px}
.crm-inbox{grid-template-columns:minmax(400px,440px) 1fr}
.crm-inbox-pagination{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#fff;border-top:1px solid #e4eaf1;min-height:44px}
.crm-inbox-pagination .pagination-info{font-size:11px;white-space:nowrap;color:#718096}
.crm-inbox-pagination .pagination-buttons{display:flex;align-items:center;gap:3px;flex-wrap:nowrap}
.crm-inbox-pagination .page-btn{min-width:28px;height:28px;padding:0 7px;font-size:11px}
.crm-inbox-pagination .page-ellipsis{font-size:11px}
@media(max-width:1100px){.crm-inbox{grid-template-columns:minmax(350px,390px) 1fr}}
@media(max-width:900px){.crm-inbox{grid-template-columns:1fr}.crm-inbox-pagination{position:static}}
.pf-shipping-button{margin-top:14px;width:max-content}.shipping-options{display:grid;gap:12px}.shipping-option{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--border-color,#dfe5ee);border-radius:12px;padding:16px;background:var(--card-bg,#fff)}.shipping-option.is-disabled{opacity:.68}.shipping-option h3{margin:3px 0 5px}.shipping-option-price{display:flex;align-items:center;gap:16px;text-align:right}.shipping-option-price strong{font-size:1.2rem;white-space:nowrap}.shipping-weight-list{display:grid;gap:10px;margin-bottom:16px}.shipping-weight-list label{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:14px;border:1px solid var(--border-color,#dfe5ee);border-radius:10px;padding:12px}.shipping-weight-list span{display:grid;gap:2px}.shipping-weight-list input{width:100%}@media(max-width:700px){.shipping-option{align-items:flex-start;flex-direction:column}.shipping-option-price{width:100%;justify-content:space-between}.shipping-weight-list label{grid-template-columns:1fr}}
#envServicioResultados.search-results{position:static;left:auto;right:auto;top:auto;margin-top:6px;max-height:220px;z-index:auto}.env-selected-product{display:block;margin-top:8px;padding:9px 11px;border:1px solid #9fc2ef;border-radius:8px;background:#eef6ff;color:#174a82;font-weight:600}
.shipping-destination-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.shipping-destination-form .btn{height:44px}@media(max-width:760px){.shipping-destination-form{grid-template-columns:1fr}}
.dispatch-filters{display:flex;gap:12px;margin-bottom:16px}.dispatch-filters select{min-width:190px}.dispatch-filters input{max-width:360px}.env-dispatch-page td small{display:block;color:var(--text-muted,#667085);margin-top:3px}.dispatch-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef2f6;font-size:12px;text-transform:capitalize;white-space:nowrap}.dispatch-status.st-entregado{background:#dcfce7;color:#166534}.dispatch-status.st-incidencia{background:#fee2e2;color:#991b1b}.dispatch-status.st-despachado,.dispatch-status.st-en_transito{background:#dbeafe;color:#1e40af}.dispatch-status.st-guia_generada{background:#fef3c7;color:#92400e}.dispatch-actions{display:flex;gap:6px;flex-wrap:wrap}.dispatch-notice{padding:12px;border:1px solid #93c5fd;border-radius:9px;background:#eff6ff;color:#1e3a8a;margin-bottom:14px}@media(max-width:700px){.dispatch-filters{flex-direction:column}.dispatch-filters input{max-width:none}}

/* CRM Fase 21 - Agenda, tareas y recordatorios */
.crm-agenda-page{max-width:1600px}.crm-agenda-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.crm-agenda-kpi{appearance:none;text-align:left;border:1px solid var(--border);border-radius:13px;background:var(--panel);padding:16px 18px;color:var(--text);cursor:pointer;box-shadow:0 3px 12px rgba(15,23,42,.035);transition:.18s ease}.crm-agenda-kpi:hover,.crm-agenda-kpi.active{border-color:#71a5dc;box-shadow:0 6px 18px rgba(28,83,145,.12);transform:translateY(-1px)}.crm-agenda-kpi span,.crm-agenda-kpi small{display:block;color:var(--muted)}.crm-agenda-kpi span{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.crm-agenda-kpi strong{display:block;margin:6px 0 4px;font-size:28px}.crm-agenda-kpi.is-danger strong{color:#b42318}.crm-agenda-kpi.is-success strong{color:#18864b}.crm-agenda-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.crm-agenda-toolbar .grow{min-width:260px;flex:1}.crm-agenda-panel{margin-top:0}.crm-agenda-table td{vertical-align:middle}.crm-agenda-table td strong,.crm-agenda-table td small,.crm-agenda-table td a{display:block}.crm-agenda-table td small{margin-top:3px;color:var(--muted);max-width:340px}.crm-agenda-case{margin-top:4px;color:var(--primary);font-size:12px;font-weight:650}.crm-agenda-priority{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750}.crm-agenda-priority.p-baja{background:#eef2f6;color:#526174}.crm-agenda-priority.p-normal{background:#eaf3ff;color:#245f9e}.crm-agenda-priority.p-alta{background:#fff1dc;color:#9a5700}.crm-agenda-priority.p-urgente{background:#feeceb;color:#b42318}.status-pill.warning{background:#fff1dc;color:#915300}.status-pill.danger{background:#feeceb;color:#b42318}.status-pill.success{background:#e9f8ef;color:#187442}.crm-agenda-actions{white-space:nowrap}.agenda-relation-field{position:relative}.agenda-relation-field .search-results button{width:100%;border:0;border-bottom:1px solid var(--border);background:var(--panel);padding:11px 13px;text-align:left;color:var(--text)}.agenda-relation-field .search-results button:hover{background:var(--sidebar-hover)}.agenda-relation-field .search-results strong,.agenda-relation-field .search-results span{display:block}.agenda-relation-field .search-results strong{font-size:11px;color:var(--primary)}.agenda-relation-field .search-results span{margin-top:3px;font-size:13px}.crm-agenda-relation{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:10px 12px;border:1px solid #91b9e5;border-radius:9px;background:#edf6ff;color:#174a82;font-weight:650}.crm-agenda-relation button{border:0;background:transparent;color:#a33a3a;font-size:20px;cursor:pointer}html[data-theme="dark"] .crm-agenda-relation{background:#172c42;border-color:#315f8f;color:#b7d9ff}html[data-theme="dark"] .crm-agenda-priority.p-baja{background:#29313a;color:#c3ccd6}html[data-theme="dark"] .crm-agenda-priority.p-normal{background:#17304d;color:#a9d0ff}html[data-theme="dark"] .crm-agenda-priority.p-alta{background:#49351c;color:#ffd18a}html[data-theme="dark"] .crm-agenda-priority.p-urgente{background:#4a2225;color:#ffb4b4}html[data-theme="dark"] .status-pill.warning{background:#49351c;color:#ffd18a}html[data-theme="dark"] .status-pill.danger{background:#4a2225;color:#ffb4b4}html[data-theme="dark"] .status-pill.success{background:#173b2a;color:#9ae6b4}@media(max-width:1050px){.crm-agenda-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-agenda-toolbar .toolbar-field{flex:1 1 180px}}@media(max-width:600px){.crm-agenda-summary{grid-template-columns:1fr 1fr;gap:9px}.crm-agenda-kpi{padding:13px}.crm-agenda-kpi strong{font-size:23px}.crm-agenda-toolbar{align-items:stretch}.crm-agenda-toolbar>*{width:100%}}

/* Fase 21.1 - agenda operativa */
.crm-agenda-viewbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;padding:10px 12px}.crm-agenda-view-switch{display:flex;gap:4px;padding:3px;border-radius:10px;background:#edf2f7}.crm-agenda-view-switch button{border:0;border-radius:8px;background:transparent;padding:8px 13px;color:#526174;font-weight:700;cursor:pointer}.crm-agenda-view-switch button.active{background:#fff;color:#174f8c;box-shadow:0 2px 7px rgba(15,23,42,.12)}.crm-agenda-calendar-nav{display:flex;align-items:center;gap:8px}.crm-agenda-calendar-nav strong{min-width:210px;text-align:center;text-transform:capitalize}.crm-agenda-conversation{margin-top:3px;color:#0f766e!important;font-size:12px;font-weight:650}.crm-followup-check{display:flex;align-items:center;gap:8px;margin:15px 0;color:var(--text);font-weight:700}.crm-followup-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.crm-snooze-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.crm-snooze-options button{border:1px solid #cdd8e5;border-radius:10px;background:#f7faff;padding:10px 8px;color:#245f9e;font-weight:700;cursor:pointer}.crm-snooze-options button:hover{background:#eaf3ff;border-color:#87add5}.crm-inbox-head-actions{display:flex;align-items:center;gap:9px}.crm-agenda-calendar-panel{padding:0;overflow:hidden}.crm-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#f5f7fa;border-bottom:1px solid var(--border)}.crm-calendar-weekdays span{padding:9px;text-align:center;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase}.crm-calendar-month{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr))}.crm-calendar-day{min-height:145px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel);padding:7px}.crm-calendar-day:nth-child(7n){border-right:0}.crm-calendar-day>header{display:grid;place-items:center;width:25px;height:25px;margin:0 0 5px auto;border-radius:50%;color:#475569;font-size:11px;font-weight:800}.crm-calendar-day.is-outside{background:#f7f9fb;opacity:.62}.crm-calendar-day.is-today>header{background:#245f9e;color:#fff}.crm-calendar-task{position:relative;margin:5px 0;padding:7px 26px 7px 9px;border-left:3px solid #3978b9;border-radius:7px;background:#edf5ff;overflow:hidden}.crm-calendar-task.p-alta{border-color:#e38a13;background:#fff6e8}.crm-calendar-task.p-urgente{border-color:#dc3f3f;background:#fff0f0}.crm-calendar-task.p-baja{border-color:#8795a6;background:#f1f4f7}.crm-calendar-task.is-done{opacity:.6}.crm-calendar-task>span,.crm-calendar-task>strong,.crm-calendar-task>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-calendar-task>span{color:#56708d;font-size:9px}.crm-calendar-task>strong{margin-top:2px;color:#17324f;font-size:10px}.crm-calendar-task>small{margin-top:2px;color:#708197;font-size:9px}.crm-calendar-task>div{position:absolute;right:4px;top:5px;display:flex;flex-direction:column;gap:2px}.crm-calendar-task button{display:grid;place-items:center;width:19px;height:19px;border:0;border-radius:5px;background:rgba(255,255,255,.8);color:#315f91;cursor:pointer}.crm-calendar-task b{font-size:8px;color:#18864b}.crm-calendar-semana{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-height:560px}.crm-calendar-dia{display:grid;grid-template-columns:1fr;min-height:500px}.crm-calendar-column{border-right:1px solid var(--border);background:var(--panel);padding:10px}.crm-calendar-column:last-child{border-right:0}.crm-calendar-column>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:9px;border-bottom:2px solid #e5eaf0}.crm-calendar-column.is-today>header{border-color:#245f9e;color:#245f9e}.crm-calendar-column>header strong{text-transform:capitalize}.crm-calendar-column>header span{color:#64748b;font-size:11px}.crm-calendar-empty{display:block;padding:22px 5px;color:#94a3b8;text-align:center}html[data-theme="dark"] .crm-agenda-view-switch{background:#111b29}html[data-theme="dark"] .crm-agenda-view-switch button.active{background:#26364e;color:#b7d9ff}html[data-theme="dark"] .crm-calendar-weekdays,html[data-theme="dark"] .crm-calendar-day.is-outside{background:#111b29}html[data-theme="dark"] .crm-calendar-task{background:#17304d}html[data-theme="dark"] .crm-calendar-task>strong{color:#e8f1fc}html[data-theme="dark"] .crm-calendar-task.p-alta{background:#49351c}html[data-theme="dark"] .crm-calendar-task.p-urgente{background:#4a2225}html[data-theme="dark"] .crm-calendar-task.p-baja{background:#29313a}@media(max-width:1050px){.crm-agenda-calendar-panel{overflow-x:auto}.crm-calendar-month,.crm-calendar-semana{min-width:930px}}@media(max-width:650px){.crm-agenda-viewbar{align-items:stretch;flex-direction:column}.crm-agenda-view-switch{display:grid;grid-template-columns:repeat(4,1fr)}.crm-agenda-calendar-nav{justify-content:center;flex-wrap:wrap}.crm-agenda-calendar-nav strong{order:-1;width:100%}.crm-followup-fields,.crm-snooze-options{grid-template-columns:1fr}.crm-inbox-head-actions{align-items:flex-end;flex-direction:column}}

/* Fase 22 - Automatizaciones comerciales y SLA */
.crm-automation-page{max-width:1550px}.crm-title-sla{display:inline-block;margin-left:5px;padding:3px 7px;border-radius:999px;background:#eaf3ff;color:#245f9e;font-size:10px;font-weight:800;letter-spacing:.06em;vertical-align:middle}.crm-automation-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.crm-automation-summary button{appearance:none;padding:14px 16px;border:1px solid var(--border);border-radius:13px;background:var(--panel);color:var(--text);text-align:left;cursor:pointer}.crm-automation-summary button:hover,.crm-automation-summary button.active{border-color:#75a7d9;box-shadow:0 5px 16px rgba(28,83,145,.11)}.crm-automation-summary span{display:block;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase}.crm-automation-summary strong{display:block;margin-top:7px;font-size:26px}.crm-automation-summary .is-danger strong{color:#c33232}.crm-automation-toolbar{display:flex;align-items:flex-end;gap:11px;flex-wrap:wrap;margin-bottom:16px}.crm-alert-list{display:flex;flex-direction:column}.crm-alert-card{--alert:#d28a18;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 5px;border-bottom:1px solid var(--border)}.crm-alert-card:last-child{border-bottom:0}.crm-alert-card.severity-critica{--alert:#d23d3d}.crm-alert-card.severity-informativa{--alert:#3978b9}.crm-alert-symbol{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--alert) 12%,white);color:var(--alert);font-size:18px;font-weight:850}.crm-alert-main{min-width:0}.crm-alert-main>div{display:flex;align-items:center;gap:9px}.crm-alert-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crm-alert-main p{margin:5px 0;color:#536174;font-size:12px}.crm-alert-main small,.crm-alert-main em{display:block;color:#8794a6;font-size:10px}.crm-alert-main em{margin-top:5px;color:#397154}.crm-alert-severity{padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--alert) 13%,white);color:var(--alert);font-size:9px;font-weight:800;text-transform:uppercase}.crm-alert-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.crm-automation-config{margin-top:16px}.crm-automation-general{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:13px 15px;margin-bottom:14px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}.crm-automation-general label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.crm-automation-general input[type=number]{width:70px}.crm-automation-config table input[type=number]{width:80px}.crm-cron-help{display:flex;flex-direction:column;gap:7px;margin-top:18px;padding:14px;border:1px solid #cfe0ef;border-radius:11px;background:#f3f8fc}.crm-cron-help code{display:block;overflow:auto;padding:9px;border-radius:7px;background:#182335;color:#dce9f7;font-size:11px}.crm-cron-help small{color:#66758a}html[data-theme="dark"] .crm-title-sla{background:#17304d;color:#a9d0ff}html[data-theme="dark"] .crm-automation-general,html[data-theme="dark"] .crm-cron-help{background:#111b29;border-color:#34445c}html[data-theme="dark"] .crm-alert-main p{color:#abb9ca}html[data-theme="dark"] .crm-alert-symbol,html[data-theme="dark"] .crm-alert-severity{background:#243247}@media(max-width:1100px){.crm-automation-summary{grid-template-columns:repeat(3,1fr)}.crm-alert-card{grid-template-columns:40px minmax(0,1fr)}.crm-alert-actions{grid-column:2;justify-content:flex-start}}@media(max-width:650px){.crm-automation-summary{grid-template-columns:1fr 1fr}.crm-automation-toolbar>*{flex:1 1 145px}.crm-alert-card{grid-template-columns:1fr}.crm-alert-symbol{display:none}.crm-alert-actions{grid-column:auto}}
/* Fase 24.3 - Ficha comercial común */
.client-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.crm-ficha-inline-btn{margin-top:8px}.crm-ficha-dialog{max-width:1040px}.crm-ficha-cliente{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:18px;border:1px solid var(--border-color,#d9e1ea);border-radius:14px;background:rgba(20,74,125,.04)}.crm-ficha-cliente h2{margin:3px 0 6px}.crm-ficha-cliente p{margin:0;color:var(--text-muted,#64748b)}.crm-ficha-ultima{text-align:right;min-width:150px}.crm-ficha-ultima span,.crm-ficha-ultima small{display:block;color:var(--text-muted,#64748b)}.crm-ficha-ultima strong{display:block;font-size:1.2rem;margin:4px 0}.crm-ficha-periodo{margin:14px 0;padding:10px 12px;border-radius:10px;background:rgba(15,23,42,.05);font-size:.92rem}.crm-ficha-moneda{margin-top:16px;border:1px solid var(--border-color,#d9e1ea);border-radius:14px;padding:16px}.crm-ficha-moneda-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.crm-ficha-moneda-head h3{margin:0}.crm-ficha-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.crm-ficha-kpis>div{padding:12px;border-radius:10px;background:rgba(15,23,42,.04);min-height:78px}.crm-ficha-kpis span,.crm-ficha-kpis small{display:block;color:var(--text-muted,#64748b);font-size:.8rem}.crm-ficha-kpis strong{display:block;margin:5px 0;font-size:1.05rem}.crm-ficha-compras{margin-top:20px}.crm-ficha-compras .section-title-row{margin-bottom:10px}@media(max-width:850px){.crm-ficha-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-ficha-cliente{flex-direction:column}.crm-ficha-ultima{text-align:left}}@media(max-width:520px){.crm-ficha-kpis{grid-template-columns:1fr}}

/* Fase 24.3.1 - lectura comercial por estado */
.crm-ficha-status{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;font-size:.74rem;font-weight:800;white-space:nowrap}.crm-ficha-status.danger{background:#fff0f0;color:#a93636}.crm-ficha-status.warning{background:#fff6e8;color:#986018}.crm-ficha-status.near{background:#edf5ff;color:#245f9e}.crm-ficha-status.success{background:#eaf8ef;color:#187442}.crm-ficha-progress-wrap{margin:-2px 0 14px;padding:10px 12px;border-radius:11px;background:rgba(15,23,42,.025)}.crm-ficha-progress-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.crm-ficha-progress-copy span{color:var(--text-muted,#64748b);font-size:.78rem}.crm-ficha-progress-copy strong{font-size:.86rem}.crm-ficha-progress{height:7px;overflow:hidden;border-radius:999px;background:rgba(100,116,139,.16)}.crm-ficha-progress i{display:block;height:100%;border-radius:inherit;transition:width .3s ease}.crm-ficha-progress.danger i{background:#d56565}.crm-ficha-progress.warning i{background:#d99a3e}.crm-ficha-progress.near i{background:#5a91c9}.crm-ficha-progress.success i{background:#4a9b6b}.crm-ficha-progress-wrap>small{display:block;margin-top:6px;color:var(--text-muted,#64748b);font-size:.72rem}.crm-ficha-kpis>div{border:1px solid transparent;transition:.18s ease}.crm-ficha-kpis .kpi-current{background:#f0f6fd;border-color:#d7e7f7}.crm-ficha-kpis .kpi-target{background:#f2f2fb;border-color:#dfdef1}.crm-ficha-kpis .kpi-alert{background:#fff3f2;border-color:#f2d5d2}.crm-ficha-kpis .kpi-alert span,.crm-ficha-kpis .kpi-alert small{color:#9b4a43}.crm-ficha-kpis .kpi-alert strong{color:#9b3029}.crm-ficha-kpis .kpi-success{background:#edf8f1;border-color:#cee8d7}.crm-ficha-kpis .kpi-success span,.crm-ficha-kpis .kpi-success small{color:#34714c}.crm-ficha-kpis .kpi-success strong{color:#21623a}html[data-theme="dark"] .crm-ficha-progress-wrap{background:#111b29}html[data-theme="dark"] .crm-ficha-status.danger{background:#4a2225;color:#ffb4b4}html[data-theme="dark"] .crm-ficha-status.warning{background:#49351c;color:#ffd18a}html[data-theme="dark"] .crm-ficha-status.near{background:#17304d;color:#a9d0ff}html[data-theme="dark"] .crm-ficha-status.success{background:#173b2a;color:#9ae6b4}html[data-theme="dark"] .crm-ficha-kpis .kpi-current{background:#16283d;border-color:#294b70}html[data-theme="dark"] .crm-ficha-kpis .kpi-target{background:#27263d;border-color:#414061}html[data-theme="dark"] .crm-ficha-kpis .kpi-alert{background:#3c2426;border-color:#653638}html[data-theme="dark"] .crm-ficha-kpis .kpi-alert span,html[data-theme="dark"] .crm-ficha-kpis .kpi-alert small,html[data-theme="dark"] .crm-ficha-kpis .kpi-alert strong{color:#ffb8b2}html[data-theme="dark"] .crm-ficha-kpis .kpi-success{background:#173126;border-color:#29533d}html[data-theme="dark"] .crm-ficha-kpis .kpi-success span,html[data-theme="dark"] .crm-ficha-kpis .kpi-success small,html[data-theme="dark"] .crm-ficha-kpis .kpi-success strong{color:#a5e7ba}

/* Fase 24.3.2 - modal ficha comercial con cabecera y pie fijos */
#crmFichaComercialModal .crm-ficha-dialog{
  width:min(1040px,calc(100vw - 40px));
  max-width:1040px;
  max-height:calc(100vh - 40px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
#crmFichaComercialModal .modal-header{
  flex:0 0 auto;
  position:relative;
  z-index:3;
}
#crmFichaComercialModal .modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
#crmFichaComercialModal .modal-footer{
  flex:0 0 auto;
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
@media(max-width:650px){
  #crmFichaComercialModal{padding:10px}
  #crmFichaComercialModal .crm-ficha-dialog{
    width:calc(100vw - 20px);
    max-height:calc(100vh - 20px);
  }
}
/* Fase 25.2 - etiquetas en Caso y Conversaciones */
.crm-entity-tags{margin:12px 0;padding:12px 14px;border:1px solid var(--border-color,#dbe3ee);border-radius:12px;background:rgba(248,250,252,.72)}
.crm-tags-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.crm-tags-head strong{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.crm-tags-add{border:0;background:transparent;color:#2563eb;font-weight:700;cursor:pointer;padding:3px 5px}.crm-tags-pills{display:flex;flex-wrap:wrap;gap:6px;min-height:24px;align-items:center}.crm-entity-tag{display:inline-flex;align-items:center;gap:6px;border:1px solid;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.crm-entity-tag i{width:7px;height:7px;border-radius:50%}.crm-entity-tag button{border:0;background:transparent;color:inherit;font-size:16px;line-height:12px;cursor:pointer;padding:0 0 1px 3px}.crm-tags-picker{display:flex;gap:8px;margin-top:9px;align-items:center;flex-wrap:wrap}.crm-tags-combobox{position:relative;min-width:250px;max-width:100%}.crm-tags-combobox-btn{width:100%;height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border:1px solid #cfd9e5;border-radius:9px;background:var(--panel,#fff);color:var(--text,#172033);font:inherit;font-size:13px;text-align:left;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.03);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.crm-tags-combobox-btn:hover{border-color:#9db8d8}.crm-tags-combobox-btn:focus,.crm-tags-combobox-btn[aria-expanded="true"]{outline:none;border-color:#4d8dcc;box-shadow:0 0 0 3px rgba(37,99,235,.10)}.crm-tags-combobox-arrow{font-size:17px;color:#64748b;line-height:1;transform:translateY(-1px)}.crm-tags-combobox-menu{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:80;max-height:220px;overflow:auto;padding:5px;border:1px solid #d8e0e8;border-radius:10px;background:var(--panel,#fff);box-shadow:0 12px 28px rgba(15,23,42,.16)}.crm-tags-combobox-menu button{appearance:none;width:100%;display:flex;align-items:center;gap:9px;border:0;border-radius:7px;background:transparent;color:var(--text,#172033);padding:9px 10px;font:inherit;font-size:13px;text-align:left;cursor:pointer}.crm-tags-combobox-menu button:hover,.crm-tags-combobox-menu button:focus{outline:none;background:#edf5ff;color:#174f89}.crm-tags-combobox-menu button i{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.crm-tags-combobox-empty{display:block;padding:9px 10px;color:#94a3b8;font-size:12px}.crm-tags-apply{height:38px;min-width:78px}html[data-theme="dark"] .crm-tags-combobox-btn,html[data-theme="dark"] .crm-tags-combobox-menu{background:#111b29;border-color:#34445c}html[data-theme="dark"] .crm-tags-combobox-menu button:hover,html[data-theme="dark"] .crm-tags-combobox-menu button:focus{background:#17304d;color:#c9e2ff}@media(max-width:560px){.crm-tags-picker{align-items:stretch}.crm-tags-combobox{min-width:0;flex:1 1 100%}.crm-tags-apply{width:100%}}.crm-tags-empty,.crm-tags-loading{font-size:12px;color:#94a3b8}.crm-tags-error{font-size:12px;color:#b91c1c}.crm-inbox-contact+.crm-entity-tags{margin:8px 14px 0}
/* Fase 25.3 - filtros operativos de etiquetas */
.crm-tag-filter-field{min-width:220px}.crm-tag-filter{position:relative;min-width:210px}.crm-tag-filter-btn{width:100%;height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border:1px solid #cfd9e5;border-radius:10px;background:var(--panel,#fff);color:var(--text,#172033);font:inherit;font-size:13px;text-align:left;cursor:pointer}.crm-tag-filter-btn:hover{border-color:#9db8d8}.crm-tag-filter.open .crm-tag-filter-btn{border-color:#4d8dcc;box-shadow:0 0 0 3px rgba(37,99,235,.10)}.crm-tag-filter-menu{display:none;position:absolute;z-index:120;left:0;top:calc(100% + 5px);min-width:250px;max-width:340px;max-height:260px;overflow:auto;padding:6px;border:1px solid #d8e0e8;border-radius:11px;background:var(--panel,#fff);box-shadow:0 14px 30px rgba(15,23,42,.18)}.crm-tag-filter.open .crm-tag-filter-menu{display:block}.crm-tag-filter-menu label{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;cursor:pointer;font-size:13px}.crm-tag-filter-menu label:hover{background:#edf5ff}.crm-tag-filter-menu input{accent-color:#2563eb}.crm-tag-filter-menu label i{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.crm-tag-filter-menu small{display:block;padding:8px;color:#94a3b8}.crm-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.crm-card-tags span{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.crm-card-tags span i{width:5px;height:5px;border-radius:50%}.crm-card-tags b{font-size:10px;color:#64748b;padding:2px 3px}.crm-inbox-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}.crm-inbox-tags i{font-style:normal;font-size:10px;font-weight:700;border-radius:999px;padding:2px 6px}.crm-inbox-tags b{font-size:10px;color:#64748b}.crm-tag-filter-inbox{width:100%;min-width:0}.crm-tag-filter-inbox .crm-tag-filter-btn{height:38px}html[data-theme="dark"] .crm-tag-filter-btn,html[data-theme="dark"] .crm-tag-filter-menu{background:#111b29;border-color:#34445c}html[data-theme="dark"] .crm-tag-filter-menu label:hover{background:#17304d}@media(max-width:700px){.crm-tag-filter-field,.crm-tag-filter{width:100%;min-width:0}.crm-tag-filter-menu{min-width:100%;max-width:100%}}

/* Fase 28.1.1: tipo documental visible, sin select nativo. */
.altcom-document-switch{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0;padding:12px 14px;border:1px solid #dbe4ee;border-radius:12px;background:#f4f8fd}
.altcom-document-option{font-weight:600;font-size:13px;color:#64748b;transition:color .2s}
.altcom-document-option.is-active{color:var(--primary,#17559b)}
.altcom-document-switch .switch-control{margin:0;cursor:pointer}
.altcom-document-switch .switch-control:has(input:disabled){opacity:.65;cursor:not-allowed}
.altcom-document-switch .switch-control input:focus-visible + .switch-slider{outline:3px solid #80b8e5;outline-offset:3px}
.altcom-document-source{display:none!important}

/* Fase 28.3.1: productos dentro del modal Kanban sin desbordamiento horizontal */
.crm-commerce .catalog-product-list,
.crm-commerce .catalog-product-card { min-width:0; max-width:100%; }
.crm-commerce .catalog-product-card {
    grid-template-columns:64px minmax(0,1fr) minmax(66px,78px) minmax(85px,103px) 62px 54px minmax(70px,auto);
    gap:8px; padding:10px;
}
.crm-commerce .catalog-thumb{width:64px;height:64px}
.crm-commerce .catalog-main{min-width:0;overflow-wrap:anywhere}
.crm-commerce .catalog-metric{min-width:0}
.crm-commerce .catalog-metric strong{overflow-wrap:anywhere}
.crm-commerce .crm-qty{width:62px;min-width:0;max-width:100%}
.crm-commerce .crm-info{padding:8px 10px;white-space:nowrap;min-width:0}
@media(max-width:900px){
 .crm-commerce .catalog-product-card{grid-template-columns:64px minmax(0,1fr) minmax(75px,1fr) minmax(80px,1fr);gap:10px}
 .crm-commerce .catalog-main{grid-column:2 / -1}
 .crm-commerce .catalog-metric,.crm-commerce .crm-qty,.crm-commerce .btn{grid-column:auto;grid-row:auto;min-width:0}
}
@media(max-width:560px){
 .crm-commerce .catalog-product-card{grid-template-columns:56px minmax(0,1fr) minmax(70px,1fr);gap:8px}
 .crm-commerce .catalog-thumb{width:56px;height:56px}
 .crm-commerce .catalog-main{grid-column:2 / -1}
}


/* Fase 28.3.3 — fondos por canal con intensidad visual aproximada del 40% (capa clara al 60%).
   Exclusivamente en el historial de mensajes.
   No afecta cabeceras, barra de herramientas, composer ni paneles vecinos. */
.crm-channel-wallpaper,
.crm-inbox-chat .crm-inbox-messages {
    background-color: #f7fafc !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}
.crm-wallpaper-whatsapp,
.crm-inbox-chat.channel-whatsapp .crm-inbox-messages {
    background-image: linear-gradient(rgba(247,250,252,.60), rgba(247,250,252,.60)), url('../assets/chat-backgrounds/whatsapp.webp') !important;
}
.crm-wallpaper-facebook,
.crm-inbox-chat.channel-facebook .crm-inbox-messages {
    background-image: linear-gradient(rgba(247,250,252,.60), rgba(247,250,252,.60)), url('../assets/chat-backgrounds/facebook.webp') !important;
}
.crm-wallpaper-instagram,
.crm-inbox-chat.channel-instagram .crm-inbox-messages {
    background-image: linear-gradient(rgba(247,250,252,.60), rgba(247,250,252,.60)), url('../assets/chat-backgrounds/instagram.webp') !important;
}
.crm-wallpaper-email,
.crm-inbox-chat.channel-email .crm-inbox-messages {
    background-image: linear-gradient(rgba(247,250,252,.60), rgba(247,250,252,.60)), url('../assets/chat-backgrounds/email.webp') !important;
}


/* Fase 28.3.4: barra de herramientas compacta de una sola fila. */
.crm-conversation .crm-conversation-tools {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 5px;
  padding: 6px;
  min-width: 0;
  max-width: 100%;
  border: 1px solid #dce5f1;
  border-radius: 11px;
  background: #f8fafc;
}
.crm-conversation .crm-conversation-tools .crm-tool-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex: 0 1 auto;
  min-width: 0;
  min-height: 34px;
  padding: 6px 8px;
  white-space: nowrap;
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  color: #1d3d67;
  background: #fff;
  border: 1px solid #dce5ef;
  border-radius: 8px;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}
.crm-conversation .crm-conversation-tools .crm-tool-btn:not(:disabled):hover,
.crm-conversation .crm-conversation-tools .crm-tool-btn:not(:disabled):focus-visible {
  color: #164c88;
  background: #eaf3ff;
  border-color: #8db8e7;
}
.crm-conversation .crm-conversation-tools .crm-tool-btn:disabled {
  opacity: .46;
  background: #f1f4f8;
  cursor: not-allowed;
}
.crm-conversation .crm-conversation-tools .crm-tool-icon {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
}
.crm-conversation .crm-conversation-tools .crm-doc-menu { flex: 0 0 auto; }
.crm-conversation .crm-conversation-tools .crm-tool-caret { font-size: 13px; line-height: 1; }
/* En vistas muy estrechas, mantener una sola fila con desplazamiento horizontal. */
@media (max-width: 570px) {
  .crm-conversation .crm-conversation-tools { overflow-x: auto; scrollbar-width: thin; }
  .crm-conversation .crm-conversation-tools .crm-tool-btn { flex: 0 0 auto; }
}

/* Fase 28.5 - Nuevo caso Kanban: cabecera y pie estáticos, campos compactos. */
#crmNuevaModal{padding:12px;}
#crmNuevaModal .crm-new-case-dialog{
    width:min(960px,100%);max-width:960px;
    max-height:calc(100dvh - 24px);max-height:calc(100vh - 24px);
    display:flex;flex-direction:column;overflow:hidden;
}
#crmNuevaModal .modal-header{flex:0 0 auto;}
#crmNuevaForm{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;}
#crmNuevaForm>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;}
#crmNuevaForm>.modal-footer{flex:0 0 auto;display:flex;justify-content:flex-end;align-items:center;}
#crmNuevaForm .crm-new-case-grid{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px 13px!important;
}
#crmNuevaForm .crm-new-case-grid>.form-group{min-width:0;grid-column:span 1;}
#crmNuevaForm .crm-new-case-grid>.span-2{grid-column:span 2;}
#crmNuevaForm .crm-new-case-grid>.span-3{grid-column:span 3;}
#crmNuevaForm .crm-new-case-grid>.span-4{grid-column:1/-1;}
#crmNuevaForm .form-group input,#crmNuevaForm .form-group select,#crmNuevaForm .form-group textarea{width:100%;min-width:0;box-sizing:border-box;}
#crmNuevaForm .form-group textarea{min-height:65px;resize:vertical;}
@media(max-width:740px){
    #crmNuevaForm .crm-new-case-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    #crmNuevaForm .crm-new-case-grid>.span-3,#crmNuevaForm .crm-new-case-grid>.span-4{grid-column:1/-1;}
}
@media(max-width:460px){
    #crmNuevaModal{padding:6px;}
    #crmNuevaModal .crm-new-case-dialog{max-height:calc(100vh - 12px);}
    #crmNuevaForm .crm-new-case-grid>.span-2{grid-column:1/-1;}
}

/* Fase 28.6 — Acciones del encabezado CRM agrupadas con iconografía vectorial. */
.crm-board-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.crm-board-page-header .crm-board-heading{flex:1 1 210px;min-width:0}
.crm-board-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}
.crm-board-header-actions .crm-board-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:9px 13px;border-radius:10px;font-size:12.5px;font-weight:600;line-height:1.2;white-space:nowrap;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.crm-board-header-actions .crm-board-action svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.crm-board-header-actions .crm-board-action:not(.crm-board-action-new){background:#f5f8fc;color:#234c7b;border:1px solid #cfdae9;box-shadow:0 1px 2px rgba(20,46,78,.03)}
.crm-board-header-actions .crm-board-action:not(.crm-board-action-new):hover{background:#eaf2fc;border-color:#a8c2e2;box-shadow:0 3px 9px rgba(25,69,118,.08)}
.crm-board-header-actions .crm-board-action-new{background:#1f4e88;color:#fff;border:1px solid #1f4e88;box-shadow:0 2px 6px rgba(31,78,136,.12)}
.crm-board-header-actions .crm-board-action-new:hover{background:#173d6e;box-shadow:0 3px 10px rgba(31,78,136,.18)}
.crm-board-header-actions .crm-board-action:focus-visible{outline:3px solid #9cbde5;outline-offset:2px}
.crm-board-header-actions .crm-chat-badge{flex:0 0 auto}
@media(max-width:700px){.crm-board-page-header{align-items:flex-start}.crm-board-header-actions{width:100%;margin-left:0;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:4px}.crm-board-header-actions .crm-board-action{flex-shrink:0}}


/* Fase 28.7 - Navegación lateral agrupada, sin cambios en los módulos */
.sidebar-brand { flex: 0 0 68px; min-height: 68px; }
.sidebar-nav { display: flex; flex-direction: column; flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; }
.sidebar-footer { flex: 0 0 auto; }
.sidebar .altcom-menu-svg { width: 19px; height: 19px; display: block; }
.sidebar .nav-icon { display: inline-flex; align-items: center; justify-content: center; }
.sidebar .nav-group { flex: 0 0 auto; }
.sidebar .nav-group > summary { outline-offset: -2px; }
.sidebar .nav-group > summary:focus-visible { outline: 2px solid #92bdf0; }
.sidebar .nav-group .nav-submenu {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    margin-top: 0;
    margin-bottom: 0;
    transition: max-height .24s ease, opacity .2s ease, margin .24s ease, visibility .24s;
}
.sidebar .nav-group[open] .nav-submenu {
    max-height: 640px;
    opacity: 1;
    visibility: visible;
    margin-top: 3px;
    margin-bottom: 5px;
}
.sidebar .nav-group .nav-subitem { flex: 0 0 auto; }
.sidebar .nav-group.has-active > summary { background: rgba(54,112,178,.2); color: white; }
@media (prefers-reduced-motion: reduce) {
    .sidebar .nav-group .nav-submenu { transition: none; }
    .sidebar .nav-chevron { transition: none; }
}

/* Fase 28.8A: administración de remitentes de correo bloqueados. */
.crm-spam-add { display:flex; gap:10px; align-items:center; margin-bottom:16px; }
.crm-spam-add input { flex:1; min-width:0; border:1px solid #cbd8e8; border-radius:9px; padding:10px 12px; }
.crm-spam-list { max-height:44vh; overflow-y:auto; }
.crm-spam-row { display:flex; gap:12px; justify-content:space-between; align-items:center; padding:12px 4px; border-bottom:1px solid #e3eaf2; }
.crm-spam-row > span { min-width:0; overflow-wrap:anywhere; }
.crm-spam-row small { display:block; color:#64748b; margin-top:4px; }
@media (max-width:600px) { .crm-spam-add { flex-wrap:wrap; } .crm-spam-row { flex-wrap:wrap; } }

/* Fase 28.8A.1: búsqueda y paginación de remitentes bloqueados. */
#convSpamModal .modal-dialog {
    display: flex;
    flex-direction: column;
    max-height: min(86vh, 760px);
}
#convSpamModal .modal-header,
#convSpamModal .modal-footer { flex-shrink: 0; }
#convSpamModal .modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
#convSpamModal .crm-spam-list { max-height: none; }
.crm-spam-filtros { margin-bottom: 12px; }
.crm-spam-filtros label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 13px; color: #344e6c; }
.crm-spam-filtros input { width: 100%; min-width: 0; border: 1px solid #cbd8e8; border-radius: 9px; padding: 10px 12px; }
.crm-spam-filtros input:focus, .crm-spam-tamano select:focus { outline: 2px solid #9dc2ec; outline-offset: 1px; }
.crm-spam-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.crm-spam-footer .pagination-info { margin-right: auto; font-size: 12px; color: #64748b; }
.crm-spam-tamano { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: #475569; }
.crm-spam-tamano select { border: 1px solid #cbd8e8; border-radius: 8px; padding: 7px; background: #fff; color: #183d68; }
.crm-spam-footer .pagination-buttons { display: inline-flex; align-items: center; gap: 5px; }
.crm-spam-pagina-actual { font-size: 12px; color: #385373; white-space: nowrap; padding: 0 5px; }
@media (max-width: 600px) { .crm-spam-footer .pagination-info { width: 100%; } }
