:root{--primary: #4361ee;--secondary: #3a0ca3;--success: #2ecc71;--warning: #f1c40f;--danger: #e74c3c;--info: #3498db;--dark: #212529;--light: #f8f9fa;--gray: #6c757d;--gray-light: #e0e0e0;--gray-dark: #343a40;--card-bg: #ffffff;--card-shadow: 0 4px 12px rgba(0, 0, 0, .08);--card-shadow-hover: 0 8px 20px rgba(0, 0, 0, .12);--border-radius: 12px;--border-radius-sm: 8px;--border-radius-xs: 4px;--gtd-color: #3a86ff;--cerni-color: #f72585;--cox-color: #4cc9f0;--marketing-color: #7209b7;--ventas-color: #f8961e;--gestion-color: #2a9d8f}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);color:var(--dark);min-height:100vh;line-height:1.6}.loading-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#4361ee,#3a0ca3);padding:2rem}.loading-content{background:#fff;padding:3rem;border-radius:var(--border-radius);box-shadow:0 20px 40px #00000026;text-align:center;max-width:500px;width:100%}.loading-spinner{width:60px;height:60px;border:4px solid var(--gray-light);border-top-color:var(--primary);border-radius:50%;margin:0 auto 2rem;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-content h2{font-size:1.5rem;margin-bottom:1rem;color:var(--dark)}.loading-content p{color:var(--gray);margin-bottom:2rem}.loading-stats{display:grid;gap:1rem;margin-bottom:2rem}.loading-stat{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f8f9fa;border-radius:var(--border-radius-sm);border-left:4px solid var(--primary)}.stat-label{font-weight:500;color:var(--gray-dark)}.stat-value{font-weight:600;font-size:1.2rem}.retry-button{background:var(--primary);color:#fff;border:none;padding:.75rem 2rem;border-radius:var(--border-radius-sm);font-weight:600;cursor:pointer;width:100%;transition:background-color .2s}.retry-button:hover:not(:disabled){background:#3050d6}.retry-button:disabled{opacity:.6;cursor:not-allowed}.dashboard-container{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:#fff;box-shadow:2px 0 10px #0000000d;padding:1.5rem;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid #eee}.logo{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #eee}.logo-icon{font-size:2rem;background:linear-gradient(90deg,var(--primary),var(--secondary));-webkit-background-clip:text;background-clip:text;color:transparent}.logo h1{font-size:1.25rem;font-weight:700;color:var(--dark);line-height:1.2}.logo-subtitle{font-size:.8rem;color:var(--gray);margin-top:.25rem}.sidebar-nav ul{list-style:none}.sidebar-nav li{margin-bottom:.25rem}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--border-radius-sm);text-decoration:none;color:var(--gray-dark);transition:all .2s;position:relative}.sidebar-nav a:hover{background:#f8f9fa}.sidebar-nav a.active{background:linear-gradient(90deg,var(--primary),var(--secondary));color:#fff;font-weight:500}.nav-icon{width:36px;height:36px;border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;font-size:1rem}.nav-badge{margin-left:auto;font-size:.8rem;font-weight:600;background:var(--info);color:#fff;padding:.2rem .6rem;border-radius:20px;min-width:24px;text-align:center}.sidebar-status{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #eee}.status-indicator{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#f8f9fa;border-radius:var(--border-radius-sm);margin-bottom:1.5rem}.status-dot{width:12px;height:12px;border-radius:50%}.status-text{display:flex;flex-direction:column}.status-title{font-weight:600;font-size:.9rem;color:var(--dark)}.status-subtitle{font-size:.75rem;color:var(--gray)}.quick-stats{background:#f8f9fa;border-radius:var(--border-radius-sm);padding:1rem}.quick-stats h4{font-size:.9rem;margin-bottom:.75rem;color:var(--gray-dark)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-item{display:flex;flex-direction:column;padding:.5rem;background:#fff;border-radius:var(--border-radius-xs);border:1px solid #eee}.stat-label{font-size:.7rem;color:var(--gray);margin-bottom:.25rem}.stat-value{font-weight:600;font-size:.9rem;color:var(--dark)}.main-content{padding:1.5rem;overflow-y:auto;background:#f8f9fa}.header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding:1.5rem;background:#fff;border-radius:var(--border-radius);box-shadow:var(--card-shadow)}.header-left h2{font-size:1.5rem;margin-bottom:.5rem;color:var(--dark)}.header-left p{color:var(--gray);font-size:.95rem}.header-right{display:flex;flex-direction:column;gap:1rem;align-items:flex-end}.header-update{display:flex;gap:.5rem;align-items:center}.update-text{color:var(--gray);font-size:.9rem}.update-time{font-weight:600;color:var(--dark);font-size:.9rem}.header-actions{display:flex;gap:.75rem}.action-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--border-radius-sm);font-weight:500;font-size:.9rem;cursor:pointer;transition:all .2s;border:1px solid transparent}.action-button.primary{background:var(--primary);color:#fff}.action-button.primary:hover{background:#3050d6}.action-button.secondary{background:#fff;color:var(--dark);border-color:#ddd}.action-button.secondary:hover{background:#f8f9fa;border-color:#ccc}.button-icon{font-size:.9rem}.section-header{margin-bottom:1.5rem}.section-header h3{font-size:1.3rem;margin-bottom:.5rem;color:var(--dark)}.section-header p{color:var(--gray)}.cards-section{margin-bottom:2rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.card{background:#fff;border-radius:var(--border-radius);padding:1.25rem;box-shadow:var(--card-shadow);transition:all .3s;border-top:4px solid var(--primary);cursor:pointer;display:flex;flex-direction:column;position:relative}.card:hover{transform:translateY(-5px);box-shadow:var(--card-shadow-hover)}.card.selected{outline:2px solid var(--primary);outline-offset:-2px}.card.gtd-card{border-top-color:var(--gtd-color)}.card.cerni-card{border-top-color:var(--cerni-color)}.card.cox-card{border-top-color:var(--cox-color)}.card.marketing-card{border-top-color:var(--marketing-color)}.card.ventas-card{border-top-color:var(--ventas-color)}.card.gestion-card{border-top-color:var(--gestion-color)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.5rem}.card-icon{width:44px;height:44px;border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.25rem}.card-model{font-size:.8rem;font-weight:500;text-align:right;line-height:1.2}.card h3{font-size:1.1rem;margin-bottom:.5rem;color:var(--dark)}.card-description{font-size:.9rem;color:var(--gray);margin-bottom:1rem;line-height:1.4;flex-grow:1}.card-metric-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem}.card-metric{font-size:2rem;font-weight:700;line-height:1}.card-trend{font-size:.9rem;font-weight:500}.card-details{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-top:1rem;border-top:1px solid #eee;font-size:.85rem;color:var(--gray)}.card-agents,.card-updated{display:flex;align-items:center;gap:.5rem}.detail-icon{font-size:.9rem}.card-actions{display:flex;gap:.5rem;margin-top:auto}.card-action{flex:1;padding:.5rem;border-radius:var(--border-radius-xs);border:none;font-size:.8rem;font-weight:500;cursor:pointer;transition:opacity .2s;text-align:center;color:#fff}.card-action:hover{opacity:.9}.card-action.secondary{background:var(--gray-light);color:var(--gray-dark)}.card-action.secondary:hover{background:#d5d5d5}.charts-section{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2rem}.chart-container{background:#fff;border-radius:var(--border-radius);padding:1.25rem;box-shadow:var(--card-shadow)}.chart-header{margin-bottom:1rem}.chart-header h4{font-size:1.1rem;margin-bottom:.25rem;color:var(--dark)}.chart-subtitle{font-size:.85rem;color:var(--gray)}.chart-wrapper{height:300px;position:relative}.chart-wrapper canvas{width:100%!important;height:100%!important}.details-section{background:#fff;border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--card-shadow);margin-bottom:1.5rem}.squad-info{display:flex;gap:1.5rem;margin-top:.5rem}.info-item{display:flex;gap:.5rem;align-items:center}.info-label{color:var(--gray);font-size:.9rem}.info-value{font-weight:600;font-size:.9rem}.info-value.activo{color:var(--success)}.info-value.inactivo{color:var(--danger)}.metrics-table{overflow-x:auto;margin:1.5rem 0;border-radius:var(--border-radius-sm);border:1px solid #eee}.metrics-table table{width:100%;border-collapse:collapse}.metrics-table th{background:#f8f9fa;padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.85rem;color:var(--gray-dark);border-bottom:1px solid #eee}.metrics-table td{padding:.75rem 1rem;border-bottom:1px solid #eee;font-size:.9rem}.metrics-table tr:hover{background:#f8f9fa}.metric-name{display:flex;align-items:center;gap:.5rem}.metric-icon{font-size:.9rem}.metric-value{font-weight:700;font-size:1rem}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.status-badge.success{background:#d4edda;color:#155724}.status-badge.warning{background:#fff3cd;color:#856404}.status-badge.danger{background:#f8d7da;color:#721c24}.empty-state{text-align:center;padding:3rem;border:2px dashed #eee;border-radius:var(--border-radius);margin:1.5rem 0}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state h4{font-size:1.1rem;margin-bottom:.5rem;color:var(--gray-dark)}.empty-state p{color:var(--gray);margin-bottom:1.5rem}.empty-action{background:var(--primary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:var(--border-radius-sm);font-weight:500;cursor:pointer;transition:background-color .2s}.empty-action:hover{background:#3050d6}.section-actions{display:flex;justify-content:space-between;align-items:center;padding-top:1.5rem;border-top:1px solid #eee;margin-top:1.5rem}.cost-info{display:flex;flex-direction:column;gap:.25rem}.cost-label{font-size:.9rem;color:var(--gray)}.cost-value{font-size:1.25rem;font-weight:700;color:var(--dark)}.cost-sub{font-size:.8rem;color:var(--gray)}.action-buttons{display:flex;gap:.75rem}.squad-action{padding:.75rem 1.5rem;border-radius:var(--border-radius-sm);border:1px solid #ddd;background:#fff;font-weight:500;cursor:pointer;transition:all .2s}.squad-action.primary{color:#fff;border:none}.squad-action:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.system-info{margin-top:1.5rem}.info-box{background:#fff;border-radius:var(--border-radius);padding:1.25rem;box-shadow:var(--card-shadow)}.info-box h4{margin-bottom:1rem;color:var(--dark)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.info-item{display:flex;justify-content:space-between;padding:.75rem;background:#f8f9fa;border-radius:var(--border-radius-sm);border-left:4px solid var(--info)}.info-item.online{border-left-color:var(--success)}.info-item.offline{border-left-color:var(--danger)}@media (max-width: 1200px){.charts-section{grid-template-columns:1fr}}@media (max-width: 1024px){.dashboard-container{grid-template-columns:1fr}.sidebar{height:auto;position:static;border-right:none;border-bottom:1px solid #eee}}@media (max-width: 768px){.cards-grid{grid-template-columns:1fr}.header{flex-direction:column;gap:1rem}.header-right{width:100%;align-items:stretch}.header-actions{flex-direction:column}.action-button{width:100%;justify-content:center}.charts-section,.info-grid{grid-template-columns:1fr}.section-actions{flex-direction:column;gap:1rem}.action-buttons{width:100%}.squad-action{flex:1;text-align:center}}@media (max-width: 480px){.main-content,.sidebar,.header,.card{padding:1rem}.chart-wrapper{height:250px}.metrics-table{font-size:.8rem}.metrics-table th,.metrics-table td{padding:.5rem}}.online{color:var(--success)}.offline{color:var(--danger)}.warning-text{color:var(--warning)}.info-text{color:var(--info)}.text-center{text-align:center}.text-right{text-align:right}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
