.cam_active {
    color: #ff4444;
    animation: cam_pulse 1.5s infinite;
}
@keyframes cam_pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.4; }
}

/* ── Sahne ── */
#vcall_stage {
    position: absolute;
    inset: 0;
    bottom: 52px;
    overflow: hidden;
    background: #0d0d14;
}

/* ── Cam penceresi ── */
.cam_window {
    position: absolute;
    width: 240px;
    background: #1a1a2e;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.6);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 140px;
    min-height: 60px;
}

/* ── Başlık çubuğu ── */
.camwin_titlebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #16213e;
    padding: 4px 6px;
    cursor: move;
    user-select: none;
    flex-shrink: 0;
    height: 26px;
    box-sizing: border-box;
}
.camwin_title {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: #ccc;
    overflow: hidden;
    flex: 1;
    min-width: 0;
}
.vcall_name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
    min-width: 0;
}
.vcall_vol {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}
.camwin_self_badge {
    font-size: 9px;
    background: #5b9bd5;
    color: #fff;
    padding: 1px 5px;
    border-radius: 3px;
    flex-shrink: 0;
}

/* ── Pencere butonları ── */
.camwin_btns {
    display: flex;
    gap: 3px;
    flex-shrink: 0;
}
.camwin_min,
.camwin_close,
.camwin_ban {
    width: 16px;
    height: 16px;
    border: none;
    border-radius: 3px;
    font-size: 9px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
    transition: background 0.12s;
}
.camwin_min  { background: #555; color: #ddd; }
.camwin_min:hover { background: #777; }
.camwin_close { background: #c0392b; color: #fff; }
.camwin_close:hover { background: #e74c3c; }
.camwin_ban  { background: #8e44ad; color: #fff; }
.camwin_ban:hover { background: #9b59b6; }

/* ── Video alanı ── */
.camwin_body {
    position: relative;
    flex: 1;
    background: #000;
    min-height: 0;
}
.cam_window .vcall_player {
    width: 100%;
    height: 180px;
    background: #000;
    position: relative;
    overflow: hidden;
}
/* Agora video elementi */
.cam_window .vcall_player > div,
.cam_window .vcall_player video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}

/* ── Placeholder (kamera yok) ── */
.vcall_placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111;
    color: #555;
    font-size: 11px;
}

/* ── Küçültülmüş ── */
.cam_window.camwin_minimized .camwin_body {
    display: none;
}
.cam_window.camwin_minimized {
    width: 200px;
}

/* ── Ban bekliyor ── */
.cam_window.ban-pending {
    opacity: 0.5;
    pointer-events: none;
}

/* ── Kontrol barı ── */
#vcall_control_wrap {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 52px;
    background: rgba(10,10,20,0.95);
    border-top: 1px solid rgba(255,255,255,0.07);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}
#vcall_control {
    display: flex;
    align-items: center;
    gap: 6px;
}
.vcall_btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, transform 0.12s;
}
.vcall_btn:hover {
    background: rgba(255,255,255,0.2);
    transform: scale(1.08);
}
.vcall_btn.vcall_off {
    background: rgba(192,57,43,0.6);
}
#vcall_leave {
    background: rgba(192,57,43,0.75);
}
#vcall_leave:hover {
    background: rgba(231,76,60,0.95);
}
.vcall_icon {
    width: 18px;
    height: 18px;
    filter: brightness(10);
    pointer-events: none;
}
.vcall_spacer { width: 6px; }

/* ═══════════════════════════════════════════════════
   BOOMCHAT — CAM / CALL UI  (call_userlist.css)
   ═══════════════════════════════════════════════════ */

/* ── Userlist satırındaki cam ikonu ── */
.user_call_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: transparent;
    color: #5b9bd5;
    cursor: pointer;
    transition: background 0.18s, color 0.18s, transform 0.15s;
    margin-left: 4px;
    flex-shrink: 0;
    vertical-align: middle;
    border: none;
    outline: none;
    font-size: 11px;
}
.user_call_btn:hover {
    background: #5b9bd5;
    color: #fff;
    transform: scale(1.15);
}
.user_call_btn .fa {
    pointer-events: none;
}

/* ── Call tipi seçim kutusu ── */
.call_select_box {
    width: 300px;
    border-radius: 12px;
    overflow: hidden;
}
.call_user_preview {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 18px 0 12px;
    gap: 8px;
}
.call_preview_avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #5b9bd5;
}
.call_preview_name {
    font-weight: 600;
    font-size: 15px;
}
.call_type_buttons {
    display: flex;
    gap: 10px;
    justify-content: center;
    padding: 0 16px 18px;
}
.call_btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 8px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    transition: filter 0.15s, transform 0.15s;
}
.call_btn:hover {
    filter: brightness(1.1);
    transform: translateY(-2px);
}
.call_btn .fa {
    font-size: 22px;
}
.call_btn_video {
    background: #5b9bd5;
    color: #fff;
}
.call_btn_audio {
    background: #4caf88;
    color: #fff;
}

/* ── Arayan bekleme penceresi ── */
.call_pending_wrap {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.55);
    z-index: 9999;
    backdrop-filter: blur(4px);
}
.call_pending_inner {
    background: var(--modal_bg, #fff);
    border-radius: 16px;
    padding: 32px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    box-shadow: 0 8px 40px rgba(0,0,0,.25);
    min-width: 240px;
}
.call_pending_avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #5b9bd5;
}
/* Zil animasyonu */
@keyframes ringing {
    0%,100% { box-shadow: 0 0 0 0 rgba(91,155,213,.6); }
    50%      { box-shadow: 0 0 0 14px rgba(91,155,213,0); }
}
.call_pending_avatar.ringing {
    animation: ringing 1.2s ease-out infinite;
}
.call_pending_name {
    font-weight: 700;
    font-size: 17px;
}
.call_pending_status {
    color: #888;
    font-size: 13px;
}
.call_btn_cancel {
    margin-top: 8px;
    padding: 8px 24px;
    border-radius: 8px;
    background: #e04040;
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    transition: background 0.15s;
}
.call_btn_cancel:hover { background: #c43030; }

/* ── Gelen call bildirimi (#call_request) ── */
#call_request {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 280px;
    background: var(--modal_bg, #fff);
    border-radius: 14px;
    box-shadow: 0 6px 30px rgba(0,0,0,.22);
    padding: 14px 16px;
    z-index: 9998;
    display: flex;
    align-items: center;
    gap: 12px;
    animation: slideIn .3s ease;
}
@keyframes slideIn {
    from { transform: translateY(60px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}
#call_request_avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.call_request_info { flex: 1; min-width: 0; }
.call_request_info .call_rname {
    font-weight: 700;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.call_request_info .call_rtype {
    font-size: 12px;
    color: #888;
}
.call_request_actions {
    display: flex;
    gap: 6px;
}
.call_req_accept,
.call_req_decline {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .15s;
}
.call_req_accept  { background: #4caf88; color: #fff; }
.call_req_decline { background: #e04040; color: #fff; }
.call_req_accept:hover,
.call_req_decline:hover { transform: scale(1.12); }

/* ── Aktif call container ── */
#container_call {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9997;
    background: #000;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 60px rgba(0,0,0,.5);
}
#container_call iframe {
    display: block;
    border: none;
}

/* ── Hata kutusu ── */
.call_error_box {
    width: 280px;
    text-align: center;
}
.call_error_icon {
    font-size: 36px;
    color: #e04040;
    margin: 16px 0 8px;
}
.call_error_msg {
    padding-bottom: 16px;
    color: #555;
}







@keyframes waSlideIn{
	from{
		opacity: 0;
		transform: translateX(120%);
	}
	to{
		opacity: 1;
		transform: translateX(0);
	}
}

/* Ã‡Ä±kÄ±ÅŸ animasyonu */
.esunus_notification.out{
	animation: enPopOut .3s ease forwards;
}

@keyframes enPopOut{
	to{
		opacity: 0;
		transform: scale(0.3) translateY(20px);
	}
}
@keyframes pulse5 {
    0% {
        box-shadow: 0 0 0 0 #7885ffb5
    }

    70% {
        box-shadow: 0 0 0 11px transparent
    }

    to {
        box-shadow: 0 0 0 0 transparent
    }
}

@-webkit-keyframes movinground {
    0%,to {
        -webkit-transform: rotate(0deg) scale(1);
        transform: rotate(0deg) scale(1)
    }

    60% {
        -webkit-transform: rotate(180deg) scale(1.5);
        transform: rotate(180deg) scale(1.5)
    }

    80% {
        -webkit-transform: rotate(90deg) scale(.6);
        transform: rotate(90deg) scale(.6)
    }
}
/* Sise Cevirmece modal - arka plan sohbet erisimi */
#large_modal.sise_modal_open { background: transparent !important; pointer-events: none; }
#large_modal.sise_modal_open .large_modal_in { pointer-events: auto; }

/* Alt Menu Ayirici Cizgi */
#main_input_extra {
    padding: 0 !important;
    overflow: hidden !important;
}
#main_input_extra .sub_options {
    width: 100% !important;
    border-radius: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,0.13) !important;
    margin: 0 !important;
}
#main_input_extra .sub_options:last-child {
    border-bottom: none !important;
}


#esunus_search_box .search_bar {
    padding: 10px 12px;
}
#esunus_search_box input {
    border-radius: 10px;
}
/* Ban Listesi Tablo Tasarim */
.ban-table {
    border: 1px solid #ddd;
    border-radius: 6px;
    overflow: visible;
    margin: 0 4px;
}
.ban-table .page_element {
    padding: 0 !important;
    margin-bottom: 0 !important;
}
.ban-table-header {
    display: flex;
    align-items: center;
    background: #f5f5f5;
    border-bottom: 1px solid #ddd;
    font-size: 10px;
    font-weight: 700;
    color: #777;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.ban-table-header .ban-col {
    padding: 7px 5px;
    border-right: 1px solid #ddd;
    display: flex;
    align-items: center;
}
.ban-table-header .ban-col:last-child {
    border-right: none;
}
.ban-row {
    display: flex;
    align-items: center;
    background: #fff;
    border-bottom: 1px solid #eee;
    transition: background 0.15s ease;
    font-size: 12px;
    color: #444;
}
.ban-row:last-child {
    border-bottom: none;
}
.ban-row:hover {
    background: #fafafa;
}
.ban-row .ban-col {
    padding: 6px 5px;
    border-right: 1px solid #eee;
    min-height: 38px;
    display: flex;
    align-items: center;
}
.ban-row .ban-col:last-child {
    border-right: none;
}
.ban-col {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ban-col-nick {
    flex: 2;
    gap: 5px;
    min-width: 0;
    font-weight: 500;
}
.ban-col-ip {
    flex: 1.5;
    min-width: 0;
    font-family: monospace;
    font-size: 11px;
    color: #666;
}
.ban-col-datereas {
    flex: 1.5;
    min-width: 0;
    overflow: visible;
    position: relative;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}
.ban-table #member_list {
    overflow: visible;
}
.ban-date-text {
    font-size: 11px;
    color: #888;
}
.ban-col-admin {
    flex: 1;
    min-width: 0;
    font-weight: 500;
    color: #555;
    font-size: 11px;
}
.ban-col-action {
    flex: 0 0 40px;
    justify-content: center;
}
.ban-avatar {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    cursor: pointer;
}
.ban-avatar img {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
}
.ban-unban-btn {
    padding: 5px 8px;
    border-radius: 5px;
    background: rgba(220,53,69,0.1);
    cursor: pointer;
    transition: background 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ban-unban-btn:hover {
    background: rgba(220,53,69,0.25);
}
.ban-unban-btn i {
    color: #e74c3c;
    font-size: 12px;
}
/* Detay butonu ve dropdown */
.ban-detail-wrap {
    position: relative;
}
.ban-detail-btn {
    display: inline-block;
    padding: 2px 8px;
    background: #f0f0f0;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 10px;
    color: #666;
    cursor: pointer;
    transition: background 0.15s;
    user-select: none;
}
.ban-detail-btn:hover {
    background: #e8e8e8;
    color: #333;
}
.ban-detail-box {
    display: none;
    position: absolute;
    top: 100%;
    left: -40px;
    right: -40px;
    margin-top: 4px;
    padding: 8px 10px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    font-size: 12px;
    color: #333;
    white-space: normal;
    word-break: break-word;
    z-index: 200;
}