/**
 * XCON Presence - Frontend Styles
 */

/* ============================================
   Badge Styles
   ============================================ */

.xcon-presence-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    background: #f5f5f5;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.xcon-presence-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.xcon-presence-name {
    font-weight: 600;
    margin-right: 4px;
}

.xcon-presence-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
}

.xcon-presence-icon i {
    transition: color 0.3s ease;
}

/* ============================================
   Status Colors
   ============================================ */

/* Available / Green */
.xcon-presence-badge[data-status="available"] {
    background: #e8f5e9;
    color: #2e7d32;
}
.xcon-presence-badge[data-status="available"] .xcon-presence-dot {
    background: #4caf50;
    box-shadow: 0 0 6px #4caf50;
}
.xcon-presence-badge[data-status="available"] .xcon-presence-icon i {
    color: #4caf50;
}

/* Busy / In Call / Red */
.xcon-presence-badge[data-status="busy"],
.xcon-presence-badge[data-status="do_not_disturb"],
.xcon-presence-badge[data-status="dnd"] {
    background: #ffebee;
    color: #c62828;
}
.xcon-presence-badge[data-status="busy"] .xcon-presence-dot,
.xcon-presence-badge[data-status="do_not_disturb"] .xcon-presence-dot,
.xcon-presence-badge[data-status="dnd"] .xcon-presence-dot {
    background: #f44336;
    box-shadow: 0 0 6px #f44336;
}
.xcon-presence-badge[data-status="busy"] .xcon-presence-icon i,
.xcon-presence-badge[data-status="do_not_disturb"] .xcon-presence-icon i,
.xcon-presence-badge[data-status="dnd"] .xcon-presence-icon i {
    color: #f44336;
}

/* Ringing / Blue */
.xcon-presence-badge[data-status="ringing"] {
    background: #e3f2fd;
    color: #1565c0;
}
.xcon-presence-badge[data-status="ringing"] .xcon-presence-dot {
    background: #2196f3;
    box-shadow: 0 0 6px #2196f3;
    animation: xcon-pulse 1s infinite;
}
.xcon-presence-badge[data-status="ringing"] .xcon-presence-icon i {
    color: #2196f3;
    animation: xcon-pulse 1s infinite;
}

/* Away / Yellow */
.xcon-presence-badge[data-status="away"],
.xcon-presence-badge[data-status="lunch"],
.xcon-presence-badge[data-status="business_trip"] {
    background: #fff8e1;
    color: #f57f17;
}
.xcon-presence-badge[data-status="away"] .xcon-presence-dot,
.xcon-presence-badge[data-status="lunch"] .xcon-presence-dot,
.xcon-presence-badge[data-status="business_trip"] .xcon-presence-dot {
    background: #ff9800;
}
.xcon-presence-badge[data-status="away"] .xcon-presence-icon i,
.xcon-presence-badge[data-status="lunch"] .xcon-presence-icon i,
.xcon-presence-badge[data-status="business_trip"] .xcon-presence-icon i {
    color: #ff9800;
}

/* Offline / Gray */
.xcon-presence-badge[data-status="offline"],
.xcon-presence-badge[data-status="off_work"],
.xcon-presence-badge[data-status="unknown"] {
    background: #f5f5f5;
    color: #757575;
}
.xcon-presence-badge[data-status="offline"] .xcon-presence-dot,
.xcon-presence-badge[data-status="off_work"] .xcon-presence-dot,
.xcon-presence-badge[data-status="unknown"] .xcon-presence-dot {
    background: #9e9e9e;
}
.xcon-presence-badge[data-status="offline"] .xcon-presence-icon i,
.xcon-presence-badge[data-status="off_work"] .xcon-presence-icon i,
.xcon-presence-badge[data-status="unknown"] .xcon-presence-icon i {
    color: #9e9e9e;
}

/* ============================================
   Dynamic Color Support (from WordPress config)
   ============================================ */

/* Green */
.xcon-presence-badge[data-color="green"] {
    background: #e8f5e9;
    color: #2e7d32;
}
.xcon-presence-badge[data-color="green"] .xcon-presence-dot {
    background: #4caf50;
    box-shadow: 0 0 6px #4caf50;
}
.xcon-presence-badge[data-color="green"] .xcon-presence-icon i {
    color: #4caf50;
}

/* Red */
.xcon-presence-badge[data-color="red"] {
    background: #ffebee;
    color: #c62828;
}
.xcon-presence-badge[data-color="red"] .xcon-presence-dot {
    background: #f44336;
    box-shadow: 0 0 6px #f44336;
}
.xcon-presence-badge[data-color="red"] .xcon-presence-icon i {
    color: #f44336;
}

/* Blue */
.xcon-presence-badge[data-color="blue"] {
    background: #e3f2fd;
    color: #1565c0;
}
.xcon-presence-badge[data-color="blue"] .xcon-presence-dot {
    background: #2196f3;
    box-shadow: 0 0 6px #2196f3;
    animation: xcon-pulse 1s infinite;
}
.xcon-presence-badge[data-color="blue"] .xcon-presence-icon i {
    color: #2196f3;
}

/* Yellow */
.xcon-presence-badge[data-color="yellow"] {
    background: #fff8e1;
    color: #f57f17;
}
.xcon-presence-badge[data-color="yellow"] .xcon-presence-dot {
    background: #ff9800;
}
.xcon-presence-badge[data-color="yellow"] .xcon-presence-icon i {
    color: #ff9800;
}

/* Gray */
.xcon-presence-badge[data-color="gray"] {
    background: #f5f5f5;
    color: #757575;
}
.xcon-presence-badge[data-color="gray"] .xcon-presence-dot {
    background: #9e9e9e;
}
.xcon-presence-badge[data-color="gray"] .xcon-presence-icon i {
    color: #9e9e9e;
}

/* ============================================
   Loading State
   ============================================ */

.xcon-presence-badge.xcon-loading {
    background: #f5f5f5;
    color: #9e9e9e;
}
.xcon-presence-badge.xcon-loading .xcon-presence-dot {
    background: #bdbdbd;
    animation: xcon-pulse 1.5s infinite;
}

/* ============================================
   Animations
   ============================================ */

@keyframes xcon-pulse {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.6; transform: scale(1.2); }
    100% { opacity: 1; transform: scale(1); }
}

/* ============================================
   Minimal Status Indicator
   ============================================ */

.xcon-status-indicator {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #9e9e9e;
    transition: all 0.3s ease;
}

.xcon-status-indicator[data-status="available"] {
    background: #4caf50;
    box-shadow: 0 0 4px #4caf50;
}

.xcon-status-indicator[data-status="busy"],
.xcon-status-indicator[data-status="do_not_disturb"],
.xcon-status-indicator[data-status="dnd"] {
    background: #f44336;
    box-shadow: 0 0 4px #f44336;
}

.xcon-status-indicator[data-status="ringing"] {
    background: #2196f3;
    box-shadow: 0 0 4px #2196f3;
    animation: xcon-pulse 1s infinite;
}

.xcon-status-indicator[data-status="away"],
.xcon-status-indicator[data-status="lunch"],
.xcon-status-indicator[data-status="business_trip"] {
    background: #ff9800;
}

/* ============================================
   Team Overview
   ============================================ */

.xcon-presence-team {
    display: grid;
    grid-template-columns: repeat(var(--xcon-columns, 3), 1fr);
    gap: 20px;
}

.xcon-presence-team.xcon-presence-layout-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.xcon-presence-team-member {
    background: #fff;
    padding: 15px 20px;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.xcon-presence-team-member:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    transform: translateY(-2px);
}

.xcon-presence-member-header {
    margin-bottom: 10px;
}

.xcon-presence-member-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.xcon-presence-member-name {
    font-weight: 600;
    font-size: 16px;
    color: #333;
}

.xcon-presence-member-phone,
.xcon-presence-member-email {
    font-size: 14px;
    color: #666;
    text-decoration: none;
}

.xcon-presence-member-phone:hover,
.xcon-presence-member-email:hover {
    color: #0073aa;
}

/* List Layout */
.xcon-presence-layout-list .xcon-presence-team-member {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 12px 16px;
}

.xcon-presence-layout-list .xcon-presence-member-header {
    margin-bottom: 0;
}

.xcon-presence-layout-list .xcon-presence-member-info {
    flex-direction: row;
    align-items: center;
    gap: 15px;
}

/* Cards Layout */
.xcon-presence-layout-cards .xcon-presence-team-member {
    text-align: center;
    padding: 25px;
}

.xcon-presence-layout-cards .xcon-presence-member-header {
    margin-bottom: 15px;
}

.xcon-presence-layout-cards .xcon-presence-badge {
    justify-content: center;
}

/* ============================================
   Responsive
   ============================================ */

@media (max-width: 768px) {
    .xcon-presence-team {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .xcon-presence-team {
        grid-template-columns: 1fr;
    }
    
    .xcon-presence-layout-list .xcon-presence-member-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }
}

/* ============================================
   Badge Styles Variations
   ============================================ */

/* Minimal Style */
.xcon-presence-badge.xcon-presence-minimal {
    padding: 2px 8px;
    font-size: 11px;
    border-radius: 12px;
}

.xcon-presence-badge.xcon-presence-minimal .xcon-presence-dot {
    width: 8px;
    height: 8px;
}

/* Full Style */
.xcon-presence-badge.xcon-presence-full {
    padding: 8px 16px;
    font-size: 14px;
}

.xcon-presence-badge.xcon-presence-full .xcon-presence-dot {
    width: 12px;
    height: 12px;
}

/* ============================================
   No Extensions Message
   ============================================ */

.xcon-presence-no-extensions {
    padding: 20px;
    background: #f9f9f9;
    border-radius: 8px;
    text-align: center;
    color: #666;
    font-style: italic;
}
