.switchboard-auth {
    min-height: 100vh;
    margin: 0;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    background: linear-gradient(135deg, #f7f9fc 0%, #eef4f8 54%, #f8fafc 100%);
}

.switchboard-auth::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(rgba(20, 37, 63, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(20, 37, 63, 0.05) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
}

.switchboard-login-dialog.ui-dialog {
    width: min(440px, calc(100vw - 32px)) !important;
    border: 0;
    border-radius: 8px;
    padding: 0;
    background: #ffffff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);
    overflow: hidden;
}

.switchboard-login-dialog .ui-dialog-titlebar {
    display: none;
}

.switchboard-login-dialog .ui-dialog-content {
    padding: 32px 32px 20px;
}

.switchboard-login-dialog .ui-dialog-buttonpane {
    margin: 0;
    padding: 0 32px 32px;
    border: 0;
    background: #ffffff;
}

.switchboard-login-dialog .ui-dialog-buttonset {
    display: flex;
    flex-direction: row-reverse;
    gap: 10px;
    float: none;
    width: 100%;
}

.switchboard-login-dialog .ui-button {
    min-height: 42px;
    border-radius: 6px;
    padding: 0 18px;
    font-weight: 700;
    letter-spacing: 0;
}

.switchboard-login-dialog .login-primary-button {
    flex: 1;
    border: 1px solid #1d4ed8;
    background: #1d4ed8;
    color: #ffffff;
}

.switchboard-login-dialog .login-primary-button:hover,
.switchboard-login-dialog .login-primary-button:focus {
    border-color: #1e40af;
    background: #1e40af;
    color: #ffffff;
}

.switchboard-login-dialog .login-secondary-button {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #475569;
}

.switchboard-login-dialog .login-secondary-button:hover,
.switchboard-login-dialog .login-secondary-button:focus {
    border-color: #94a3b8;
    background: #f8fafc;
    color: #1e293b;
}

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

.login-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 56px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

.login-logo img {
    max-width: 56px;
    max-height: 42px;
    height: auto;
}

.login-eyebrow {
    color: #2563eb;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.login-brand h1 {
    margin: 2px 0 0;
    color: #0f172a;
    font-size: 28px;
    line-height: 1.15;
    letter-spacing: 0;
}

.login-modal .form-field {
    margin-bottom: 18px;
}

.login-modal label {
    display: block;
    margin-bottom: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.login-input-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.login-input-wrap:focus-within {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16);
}

.login-input-wrap i {
    width: 42px;
    color: #64748b;
    text-align: center;
}

.login-input-wrap input {
    width: 100%;
    min-width: 0;
    height: 44px;
    border: 0;
    outline: 0;
    background: transparent;
    color: #0f172a;
    font-size: 15px;
}

.login-result {
    display: block;
    min-height: 20px;
    margin-top: 2px;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 700;
}

.login-modal.is-loading .login-result {
    color: #1d4ed8;
}

.switchboardReconnectBox {
    position: fixed;
    top: 18px;
    left: 50%;
    z-index: 10020;
    display: none;
    align-items: center;
    gap: 12px;
    max-width: calc(100vw - 32px);
    min-width: min(360px, calc(100vw - 32px));
    box-sizing: border-box;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    padding: 14px 16px;
    background: #eff6ff;
    box-shadow: 0 16px 44px rgba(15, 23, 42, 0.18);
    color: #1e3a8a;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    transform: translateX(-50%);
}

.switchboardReconnectIcon {
    flex: 0 0 auto;
    color: #2563eb;
    font-size: 20px;
}

.switchboardReconnectText {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

.switchboardReconnectText strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
}

.switchboardReconnectText span {
    color: #475569;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

@media (max-width: 520px) {
    .switchboard-login-dialog .ui-dialog-content {
        padding: 26px 22px 18px;
    }

    .switchboard-login-dialog .ui-dialog-buttonpane {
        padding: 0 22px 26px;
    }

    .switchboard-login-dialog .ui-dialog-buttonset {
        flex-direction: column;
    }

    .switchboard-login-dialog .ui-button {
        width: 100%;
    }

    .login-brand h1 {
        font-size: 24px;
    }
}

.panels {
    display: inline-block;
    float: left;
    padding: 0px 0px 0px 10px;
    width: 98vw;
    height: 97vh;
}


.panelModule {
    display: block;
    flex-wrap: wrap;
    float: left;
    width: 40vw;
    height: 70vh;

    overflow:hidden;

    background-color: #ffffff;
    border: 1px solid #ccc;
    border-radius: 0.4vw;
    padding: 1vw;
    box-shadow: 0.1vw 0.1vh 0.3vw rgba(0, 0, 0, 0.1);

}

.panelModuleTitle {
    font-size: 1vw;
    clear: right;
}

.panelModuleEditTitle {
    font-size: 1vw;
    clear: right;
}

/********** EXTENSION ***********/

.panelModuleContent-extensionCard {
    display: flex;
    width: 15vw;
    padding: 0.5vw;
    border-radius: 0.4vw;
    box-shadow: 0.1vw 0.1vh 0.3vw rgba(0, 0, 0, 0.1);
    background-color: #fff;
    font-family: Arial, sans-serif;
}

.extensionCard-contact-image {
    flex: 0 0 4vw;
    margin-right: 0.5vw;
}

.extensionCard-contact-image img {
    width: 3vw;
    height: 3vw;
    border-radius: 50%;
    object-fit: cover;
}

.extensionCard-contact-info {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.extensionCard-contact-name {
    font-size: 1vw;
    font-weight: bold;
    margin: 0;
    color: #333;
}

.extensionCard-contact-phone,
.extensionCard-contac-state,
.extensionCard-contact-talking-to {
    font-size: 0.8vw;
    margin: 0.1vh 0;
    color: #555;
}

.extensionCard-contact-state {
    display: flex;
    align-items: center;
}

/********** PARKING LOT ***********/

.panelModuleContent-parkinglotCard {
    display: flex;
    width: 15vw;
    padding: 0.5vw;
    border-radius: 0.4vw;
    box-shadow: 0.1vw 0.1vh 0.3vw rgba(0, 0, 0, 0.1);
    background-color: #fff;
    font-family: Arial, sans-serif;
}

.parkinglotCard-contact-image {
    flex: 0 0 4vw;
    margin-right: 0.5vw;
}

.parkinglotCard-contact-image img {
    width: 3vw;
    height: 3vw;
    border-radius: 50%;
    object-fit: cover;
}

.parkinglotCard-contact-info {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.parkinglotCard-contact-name {
    font-size: 1vw;
    font-weight: bold;
    margin: 0;
    color: #333;
}

.parkinglotCard-contact-phone,
.parkinglotCard-contac-state,
.parkinglotCard-contact-talking-to {
    font-size: 0.8vw;
    margin: 0.1vh 0;
    color: #555;
}

.parkinglotCard-contact-state {
    display: flex;
    align-items: center;
}

/********** QUEUE_CALLSWAITING ***********/

.panelModuleContent-queue_callswaiting {
    width: 30vw;
    height: 30vh;
    border-collapse: collapse;
    padding: 0.5vw;
    border-radius: 0.4vw;
    box-shadow: 0.1vw 0.1vh 0.3vw rgba(0, 0, 0, 0.1);
    background-color: #fff;
    font-family: Arial, sans-serif;
}

.table-queue_callswaiting {
    width: 100%;
    padding: 0.5vw;
}

.table-queue_callswaiting th {
    text-align: left;
    border-bottom: 0.1vw solid #000; /* Single line under table headers */
}

.table-queue_callswaiting td {
    text-align: left;
    padding: 8px;
}

/********** AGENTS_AGENTSSTATUS ***********/

.panelModuleContent-agents_agentsstatus {
    width: 30vw;
    height: 30vh;
    border-collapse: collapse;
    padding: 0.5vw;
    border-radius: 0.4vw;
    box-shadow: 0.1vw 0.1vh 0.3vw rgba(0, 0, 0, 0.1);
    background-color: #fff;
    font-family: Arial, sans-serif;
}

.table-agents_agentsstatus {
    width: 100%;
    padding: 0.5vw;
}

.table-agents_agentsstatus th {
    text-align: left;
    border-bottom: 0.1vw solid #000; /* Single line under table headers */
}

.table-agents_agentsstatus td {
    text-align: left;
    padding: 8px;
}

/********** QUEUE COUNTERS ***********/

.panelModuleContent-queue_counter_uniquecall_entered,
.panelModuleContent-queue_counter_call_answered,
.panelModuleContent-queue_counter_call_abandoned,
.panelModuleContent-queue_counter_call_timeout,
.panelModuleContent-queue_counter_call_perc_answered,
.panelModuleContent-queue_counter_call_perc_abandoned,
.panelModuleContent-queue_counter_call_perc_timeout,
.panelModuleContent-queue_counter_native_sla,
.panelModuleContent-queue_counter_entered_sla {
    width: 10vw;
    min-height: 12vh;
    padding: 0.5vw;
    border-radius: 0.4vw;
    box-shadow: 0.1vw 0.1vh 0.3vw rgba(0, 0, 0, 0.1);
    background-color: #fff;
    font-family: Arial, sans-serif;
}

.queueCounter-value {
    font-size: 3vw;
    font-weight: bold;
    line-height: 1;
}



/********** ADD ONE ***********/

.panelModuleContent-placeHolder {
    display: flex;
    width: 15vw;
    padding: 0.5vw;
    border-radius: 0.4vw;
    box-shadow: 0.1vw 0.1vh 0.3vw rgba(0, 0, 0, 0.1);
    background-color: #fff;
    font-family: Arial, sans-serif;
    justify-content: center; /* Align horizontally */
    align-items: center;
}

/*****************************/

.panelModuleItem {
    display: flex;
    flex-wrap: wrap;
    gap: var(--switchboard-card-gap, 0.5vw);
}

.panelModuleContent[data-state=""] {
    opacity: 20%;
}

.panelModuleContent[data-state="UNAVAILABLE"] {
    opacity: 20%;
}

.extensionCard-contact-image-img[data-state=""] {
    border: 0.3vw solid transparent;
}

.extensionCard-contact-image-img[data-state="UNAVAILABLE"] {
    border: 0.3vw solid transparent;
}

.extensionCard-contact-image-img[data-state="NOT_INUSE"] {
    border: 0.3vw solid green;
}

.parkinglotCard-contact-image-img[data-state="NOT_INUSE"] {
    background-color: green;
}

.extensionCard-contact-image-img[data-state="INUSE"] {
    border: 0.3vw solid red;
}

.parkinglotCard-contact-image-img[data-state="INUSE"] {
    background-color: red;
}

.extensionCard-contact-image-img[data-state="RINGING"] {
    border: 0.3vw solid transparent;
    animation: blink-border 1s infinite;
}

.extensionCard-contact-name[data-dnd="on"]::before {
    content: "\f05e";  /* Unicode for Font Awesome stop-sign */
    font-family: "Font Awesome 6 Pro"; /* Ensure you use the correct FA version */
    color: red;
    margin-right: 5px;
}

td.agent_status[data-state="NOT_INUSE"][data-pausestate=""]::before {
    content: "\f058";  /* Unicode for Font Awesome check-circle */
    font-family: "Font Awesome 6 Pro"; /* Ensure you use the correct FA version */
    color: green;
    margin-right: 5px;
}

td.agent_status[data-state="NOT_INUSE"][data-pausestate=""]::after {
    content: " Available";
    color: black;
    font-weight: bold;
}

td.agent_status[data-state="NOT_INUSE"][data-pausestate="PAUSED"]::before {
    content: "\f04c";  /* Unicode for Font Awesome check-circle */
    font-family: "Font Awesome 6 Pro"; /* Ensure you use the correct FA version */
    color: orange;
    margin-right: 5px;
}

td.agent_status[data-state="NOT_INUSE"][data-pausestate="PAUSED"]::after {
    content: " Paused";
    color: black;
    font-weight: bold;
}

td.agent_status[data-state="INUSE"][data-dnd=""]::before {
    content: "\f2a0";  /* Unicode for Font Awesome check-circle */
    font-family: "Font Awesome 6 Pro"; /* Ensure you use the correct FA version */
    color: orange;
    margin-right: 5px;
}

td.agent_status[data-dnd="on"]::before {
    content: "\f05e";  /* Unicode for Font Awesome stop-sign */
    font-family: "Font Awesome 6 Pro"; /* Ensure you use the correct FA version */
    color: red;
    margin-right: 5px;
}

td.agent_status[data-dnd="on"]::after {
    content: " DND";
    color: black;
    font-weight: bold;
}

td.agent_status[data-state="INUSE"][data-dnd=""]::after {
    content: " In Use";
    color: black;
    font-weight: bold;
}

td.agent_status[data-state="UNAVAILABLE"]::before {
    content: "\f06a";  /* Unicode for Font Awesome check-circle */
    font-family: "Font Awesome 6 Pro"; /* Ensure you use the correct FA version */
    color: red;
    margin-right: 5px;
}

td.agent_status[data-state="UNAVAILABLE"]::after {
    content: " Unavailable";
    color: black;
    font-weight: bold;
}

td.agent_status[data-state="RINGING"]::before {
    content: "\f0f3";  /* Unicode for Font Awesome check-circle */
    font-family: "Font Awesome 6 Pro"; /* Ensure you use the correct FA version */
    color: blue;
    margin-right: 5px;
}

td.agent_status[data-state="RINGING"]::after {
    content: " Ringing";
    color: black;
    font-weight: bold;
}

@keyframes blink-border {
            0%, 100% {
                border-color: transparent; /* Initial and final state (invisible border) */
            }
            50% {
                border-color: red; /* Midpoint state (visible border) */
            }
        }

.icon-bar {
    width: 98%;
    height: 3%;
    text-align: right; /* Align icons to the right */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.icon {
    margin-left: 15px; /* Space between icons */
    display: inline-block;
}

.icon img {
    width: 30px; /* Icon size */
    height: auto;
    transition: transform 0.3s; /* Smooth hover effect */
}

.icon:hover img {
    transform: scale(1.1); /* Slightly enlarge on hover */
}

/* Editing module content */

.moduleContentSelectionBlock {
    width: 50%;
    }

#selectedModuleContent, #availableModuleContent {
    float: left;
    border: 1px solid #eee;
    width: 30%;
    min-height: 20px;
    list-style-type: none;
    margin: 0;
    padding: 5px 0 0 0;
    margin-right: 10px;
}
#selectedModuleContent li, #availableModuleContent li {
    margin: 0 5px 5px 5px;
    padding: 5px;
    font-size: 1.2em;
}

body.switchboard-ready {
    margin: 0;
    min-height: 100vh;
    overflow: hidden;
    background: #eef2f7;
    color: #0f172a;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.switchboard-ready #main {
    min-height: 100vh;
    box-sizing: border-box;
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

.ribbon {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    height: 56px;
    padding: 0 18px;
    border-bottom: 1px solid #d9e1ea;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.ribbon-title {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #0f172a;
    font-size: 18px;
    font-weight: 800;
}

.ribbon-title .fa {
    color: #2563eb;
}

.switchboardTitleText {
    max-width: 34vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.switchboardTitleTools {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.switchboardTitleChange {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    color: #334155;
    cursor: pointer;
}

.switchboardTitleChange:hover,
.switchboardTitleChange:focus {
    border-color: #94a3b8;
    background: #f8fafc;
    color: #0f172a;
}

.switchboardSelector {
    position: absolute;
    top: 38px;
    left: 0;
    z-index: 20;
    width: 260px;
    max-height: 320px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
}

.switchboardSelectorItem {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-height: 36px;
    border: 0;
    border-radius: 6px;
    padding: 0 10px;
    background: transparent;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

.switchboardSelectorItem:hover,
.switchboardSelectorItem:focus {
    background: #f1f5f9;
    color: #0f172a;
}

.switchboardSelectorItem.is-active {
    background: #1d4ed8;
    color: #ffffff;
}

.switchboardSelectorDefault {
    flex: 0 0 auto;
    color: inherit;
    font-size: 11px;
    font-weight: 800;
    opacity: 0.78;
}

.switchboardEmpty {
    margin: 18px;
    color: #475569;
    font-size: 14px;
    font-weight: 800;
}

.ribbon-title .switchboardConnectionIcon {
    color: #dc2626;
    transition: color 0.15s ease;
}

.ribbon-title .switchboardConnectionIcon.is-connected {
    color: #15803d;
}

.ribbon-title .switchboardConnectionIcon.is-disconnected {
    color: #dc2626;
}

.ribbon-item-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

.switchboardRingtoneEditor {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.switchboardRingtoneEditor label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.switchboardRingtoneEditor label .fa {
    color: #2563eb;
}

.switchboardRingtoneEditor input {
    width: min(260px, 22vw);
    min-width: 150px;
    height: 36px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 0 10px;
    background: #ffffff;
    color: #0f172a;
    font: inherit;
    font-size: 12px;
}

.switchboardRingtoneEditor input:focus {
    border-color: #2563eb;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
}

.switchboardAction {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.switchboardAction:hover,
.switchboardAction:focus {
    border-color: #94a3b8;
    background: #f8fafc;
    color: #0f172a;
}

.switchboardActionPrimary {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #ffffff;
}

.switchboardActionPrimary:hover,
.switchboardActionPrimary:focus {
    border-color: #1e40af;
    background: #1e40af;
    color: #ffffff;
}

.switchboardLogoutBtn:hover,
.switchboardLogoutBtn:focus {
    border-color: #dc2626;
    background: #fef2f2;
    color: #b91c1c;
}

.softphoneBar {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-right: 6px;
}

.softphoneNumber {
    width: 170px;
    height: 36px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 0 10px;
    background: #ffffff;
    color: #0f172a;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
}

.softphoneNumber:focus {
    border-color: #2563eb;
    outline: 2px solid rgba(37, 99, 235, 0.16);
    outline-offset: 0;
}

.softphoneCallButton:disabled {
    cursor: not-allowed;
    border-color: #d9e1ea;
    background: #e2e8f0;
    color: #64748b;
}

.softphoneCallButton.is-answer {
    border-color: #15803d;
    background: #15803d;
}

.softphoneCallButton.is-answer:hover,
.softphoneCallButton.is-answer:focus {
    border-color: #166534;
    background: #166534;
}

.softphoneCallButton.is-hangup {
    border-color: #dc2626;
    background: #dc2626;
}

.softphoneCallButton.is-hangup:hover,
.softphoneCallButton.is-hangup:focus {
    border-color: #b91c1c;
    background: #b91c1c;
}

.softphoneRejectButton {
    border-color: #dc2626;
    background: #dc2626;
    color: #ffffff;
}

.softphoneRejectButton:hover,
.softphoneRejectButton:focus {
    border-color: #b91c1c;
    background: #b91c1c;
    color: #ffffff;
}

.softphoneCallControlsWrap {
    position: static;
    display: inline-flex;
}

.softphoneControlsButton.is-open {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}

.softphoneCallControlsPopup {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 50;
    width: min(320px, calc(100vw - 24px));
    max-height: calc(100vh - 76px);
    overflow-y: auto;
    box-sizing: border-box;
    padding: 14px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 20px 48px rgba(15, 23, 42, 0.24);
    color: #0f172a;
}

.softphoneCallControlsHeader {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
    font-size: 14px;
}

.softphoneCallControlsClose {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #64748b;
    cursor: pointer;
}

.softphoneCallControlsClose:hover,
.softphoneCallControlsClose:focus {
    background: #f1f5f9;
    color: #0f172a;
}

.softphoneDialpad {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
}

.softphoneDtmfButton {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
    color: #0f172a;
    font: inherit;
    font-size: 18px;
    font-weight: 800;
    cursor: pointer;
}

.softphoneDtmfButton small {
    min-height: 10px;
    color: #64748b;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 10px;
}

.softphoneDtmfButton:hover,
.softphoneDtmfButton:focus {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
    outline: 0;
}

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

.softphoneDtmfEntry,
.softphoneTransferEntry {
    display: flex;
    align-items: stretch;
    gap: 7px;
    margin-top: 10px;
}

.softphoneDtmfEntry input,
.softphoneTransferEntry input {
    flex: 1 1 auto;
    min-width: 0;
    height: 36px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 0 9px;
    background: #ffffff;
    color: #0f172a;
    font: inherit;
    font-size: 12px;
}

.softphoneDtmfEntry input:focus,
.softphoneTransferEntry input:focus {
    border-color: #2563eb;
    outline: 2px solid rgba(37, 99, 235, 0.14);
}

.softphoneInCallActions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 7px;
    margin-top: 10px;
}

.softphonePopupAction {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 36px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 0 10px;
    background: #ffffff;
    color: #334155;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.softphonePopupAction:hover,
.softphonePopupAction:focus {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
    outline: 0;
}

.softphonePopupAction.is-active {
    border-color: #d97706;
    background: #fffbeb;
    color: #b45309;
}

.softphonePopupAction:disabled,
.softphoneDtmfButton:disabled {
    cursor: not-allowed;
    border-color: #e2e8f0;
    background: #f1f5f9;
    color: #94a3b8;
}

.softphoneTransferLabel {
    display: block;
    margin-top: 12px;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
}

.softphoneTransferEntry {
    margin-top: 6px;
}

.softphoneCallControlsStatus {
    min-height: 16px;
    margin-top: 8px;
    color: #15803d;
    font-size: 11px;
    font-weight: 700;
}

.softphoneCallControlsStatus.is-error {
    color: #b91c1c;
}

.softphoneStatus {
    min-width: 86px;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.panels.ui-tabs {
    display: block;
    float: none;
    width: auto;
    height: calc(100vh - 72px);
    margin: 8px 12px 12px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-family: inherit;
}

.panels.ui-tabs .ui-tabs-nav {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 42px;
    margin: 0 0 8px;
    padding: 4px;
    border: 1px solid #d9e1ea;
    border-radius: 8px;
    background: #ffffff;
}

.panels.ui-tabs .ui-tabs-nav li {
    margin: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
}

.panels.ui-tabs .ui-tabs-nav li a {
    padding: 10px 14px;
    color: #475569;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0;
}

.panels.ui-tabs .ui-tabs-nav li.ui-tabs-active {
    background: #1d4ed8;
}

.panels.ui-tabs .ui-tabs-nav li.ui-tabs-active a {
    color: #ffffff;
}

.panels.ui-tabs .ui-tabs-panel {
    position: relative;
    height: calc(100% - 58px);
    padding: 0;
    border: 1px solid #d9e1ea;
    border-radius: 8px;
    background: #f8fafc;
    overflow: auto;
}

.panelModule {
    box-sizing: border-box;
    overflow: hidden;
    border: 1px solid #d9e1ea;
    border-radius: 8px;
    padding: 12px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    font-family: inherit;
}

.panelModuleTitle,
.panelModuleEditTitle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 42px;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e2e8f0;
    color: #0f172a;
    font-size: 15px;
    font-weight: 800;
    clear: none;
}

.panelModuleEditTitle {
    align-items: flex-start;
}

.panelModuleNameText {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.panelModuleSearch {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 150px;
    max-width: 220px;
    height: 34px;
    padding: 0 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #f8fafc;
    color: #64748b;
}

.panelModuleSearchbox {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #0f172a;
    font-size: 13px;
}

.panelModuleName {
    flex: 1;
    min-width: 0;
    height: 34px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 0 10px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 700;
}

.module-layout-controls {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 6px;
}

.zoom-control,
.box-width-control {
    display: grid;
    align-items: center;
    grid-template-columns: 68px 110px 46px 24px;
    gap: 8px;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.zoom-slider,
.box-width-slider {
    width: 100%;
    accent-color: #2563eb;
}

.zoom-level,
.box-width-level {
    min-width: 0;
    color: #0f172a;
    text-align: right;
}

.zoom-reset,
.box-width-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: #ffffff;
    color: #475569;
    cursor: pointer;
}

.zoom-reset:hover,
.zoom-reset:focus,
.box-width-reset:hover,
.box-width-reset:focus {
    border-color: #2563eb;
    color: #1d4ed8;
    outline: none;
}

.panelModuleItem {
    align-content: flex-start;
    gap: var(--switchboard-card-gap, 0.5vw);
    max-height: calc(100% - 58px);
    overflow: auto;
    padding: 2px 2px 8px;
}

.panelModuleContent-extensionCard,
.panelModuleContent-parkinglotCard {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    width: var(--switchboard-card-width, 15vw);
    min-width: 125px;
    max-width: 100%;
    min-height: 78px;
    box-sizing: border-box;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px;
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
    font-family: inherit;
}

.panelModuleContent-extensionCard:hover,
.panelModuleContent-parkinglotCard:hover {
    border-color: #cbd5e1;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.10);
}

.panelModuleContent-extensionCard {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    grid-template-rows: 18px auto;
    column-gap: 10px;
    row-gap: 2px;
}

.extensionCard-contact-image,
.parkinglotCard-contact-image {
    flex: 0 0 46px;
    margin-right: 0;
}

.extensionCard-contact-image {
    grid-column: 1;
    grid-row: 2;
}

.extensionCard-contact-image img,
.parkinglotCard-contact-image img {
    width: 44px;
    height: 44px;
    box-sizing: border-box;
    border-radius: 50%;
    object-fit: cover;
}

.extensionCard-contact-info,
.parkinglotCard-contact-info {
    flex: 1 1 auto;
    min-width: 0;
}

.extensionCard-contact-info {
    grid-column: 2;
    grid-row: 2;
}

.extensionCard-call-timer {
    position: absolute;
    top: 7px;
    right: 8px;
    display: none;
    min-width: 42px;
    box-sizing: border-box;
    border-radius: 4px;
    padding: 2px 4px;
    background: #f1f5f9;
    color: #334155;
    direction: ltr;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}

.panelModuleContent-extensionCard[data-call-active="yes"] .extensionCard-call-timer {
    display: block;
}

.extensionCard-contact-name,
.parkinglotCard-contact-name {
    overflow: visible;
    margin: 0;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.extensionCard-contact-name,
.parkinglotCard-contact-name {
    display: flex;
    align-items: center;
    gap: 5px;
}

.extensionCard-contact-name-text,
.parkinglotCard-contact-name-text {
    overflow: hidden;
    min-width: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.extensionCard-contact-phone,
.parkinglotCard-contact-phone,
.extensionCard-contact-talking-to,
.parkinglotCard-contact-talking-to {
    overflow: hidden;
    margin: 3px 0 0;
    color: #64748b;
    font-size: 12px;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.extensionCard-contact-image-img[data-state=""],
.extensionCard-contact-image-img[data-state="UNAVAILABLE"] {
    border: 3px solid #cbd5e1;
    filter: grayscale(1);
}

.extensionCard-contact-image-img[data-state="NOT_INUSE"] {
    border: 3px solid #16a34a;
}

.extensionCard-contact-image-img[data-state="INUSE"] {
    border: 3px solid #dc2626;
}

.extensionCard-contact-image-img[data-state="RINGING"] {
    border: 3px solid transparent;
    animation: blink-border 1s infinite;
}

.extensionCard-ring-pickup {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 999px;
    padding: 0;
    background: #eff6ff;
    color: #1d4ed8;
    cursor: pointer;
    font-size: 11px;
    line-height: 1;
    vertical-align: middle;
}

.switchboard-card-dial {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 999px;
    padding: 0;
    background: #ecfdf5;
    color: #15803d;
    cursor: pointer;
    font-size: 10px;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    vertical-align: middle;
    visibility: hidden;
}

.panelModuleContent-extensionCard[data-state="NOT_INUSE"] .switchboard-card-dial,
.panelModuleContent-parkinglotCard[data-state="NOT_INUSE"] .switchboard-card-dial {
    display: inline-flex;
}

.panelModuleContent-extensionCard[data-state="NOT_INUSE"]:hover .switchboard-card-dial,
.panelModuleContent-parkinglotCard[data-state="NOT_INUSE"]:hover .switchboard-card-dial {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}

.switchboard-card-dial:hover,
.switchboard-card-dial:focus {
    background: #dcfce7;
    color: #166534;
}

.parkinglotCard-pickup {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 999px;
    padding: 0;
    background: #fff7ed;
    color: #c2410c;
    cursor: pointer;
    font-size: 10px;
    line-height: 1;
    vertical-align: middle;
}

.panelModuleContent-parkinglotCard[data-state="INUSE"] .parkinglotCard-pickup {
    display: inline-flex;
}

.parkinglotCard-pickup:hover,
.parkinglotCard-pickup:focus {
    background: #ffedd5;
    color: #9a3412;
}

.extensionCard-secret-actions {
    position: relative;
    display: none;
    align-items: center;
    flex: 0 0 auto;
}

.panelModuleContent-extensionCard[data-state="INUSE"]:hover .extensionCard-secret-actions,
.panelModuleContent-extensionCard[data-state="INUSE"] .extensionCard-secret-actions.is-open {
    display: inline-flex;
}

.extensionCard-secret-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 999px;
    padding: 0;
    background: #f3e8ff;
    color: #7e22ce;
    cursor: pointer;
    font-size: 10px;
    line-height: 1;
}

.extensionCard-secret-trigger:hover,
.extensionCard-secret-trigger:focus,
.extensionCard-secret-actions.is-open .extensionCard-secret-trigger {
    background: #e9d5ff;
    color: #6b21a8;
}

.extensionCard-secret-menu {
    position: absolute;
    top: 23px;
    right: 0;
    z-index: 20;
    display: none;
    min-width: 98px;
    overflow: hidden;
    border: 1px solid #d8b4fe;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

.extensionCard-secret-actions.is-open .extensionCard-secret-menu {
    display: grid;
}

.extensionCard-secret-menu button {
    border: 0;
    border-bottom: 1px solid #f3e8ff;
    padding: 7px 10px;
    background: #ffffff;
    color: #581c87;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
}

.extensionCard-secret-menu button:last-child {
    border-bottom: 0;
}

.extensionCard-secret-menu button:hover,
.extensionCard-secret-menu button:focus {
    background: #faf5ff;
}

.panelModuleContent-extensionCard[data-state="RINGING"] .extensionCard-ring-pickup {
    display: inline-flex;
}

.panelModuleContent-extensionCard[data-state="RINGING"] .extensionCard-ring-pickup .fa {
    animation: switchboard-ring-vibrate 0.7s linear infinite;
    transform-origin: 50% 0;
}

.extensionCard-ring-pickup:hover,
.extensionCard-ring-pickup:focus {
    background: #dbeafe;
    color: #1e40af;
}

@keyframes switchboard-ring-vibrate {
    0%, 100% {
	transform: rotate(0deg);
    }
    15% {
	transform: rotate(-18deg);
    }
    30% {
	transform: rotate(16deg);
    }
    45% {
	transform: rotate(-12deg);
    }
    60% {
	transform: rotate(10deg);
    }
    75% {
	transform: rotate(-6deg);
    }
}

.parkinglotCard-contact-image-img[data-state="NOT_INUSE"] {
    background-color: #16a34a;
}

.parkinglotCard-contact-image-img[data-state="INUSE"] {
    background-color: #dc2626;
}

.panelModuleContent[data-state=""],
.panelModuleContent[data-state="UNAVAILABLE"] {
    opacity: 0.48;
}

.panelModuleContent-queue_callswaiting,
.panelModuleContent-agents_agentsstatus,
.panelModuleContent-queue_counter_uniquecall_entered,
.panelModuleContent-queue_counter_call_answered,
.panelModuleContent-queue_counter_call_abandoned,
.panelModuleContent-queue_counter_call_timeout,
.panelModuleContent-queue_counter_call_perc_answered,
.panelModuleContent-queue_counter_call_perc_abandoned,
.panelModuleContent-queue_counter_call_perc_timeout,
.panelModuleContent-queue_counter_native_sla,
.panelModuleContent-queue_counter_entered_sla {
    position: relative;
    width: var(--switchboard-wide-card-width, calc(var(--switchboard-card-width, 15vw) + var(--switchboard-card-width, 15vw) + var(--switchboard-card-gap, 0.5vw)));
    min-width: calc(250px + var(--switchboard-card-gap, 0.5vw));
    max-width: 100%;
    min-height: 220px;
    height: auto;
    box-sizing: border-box;
    overflow: auto;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px;
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
    font-family: inherit;
}

.panelModuleContent-queue_callswaiting h3,
.panelModuleContent-agents_agentsstatus h3,
.panelModuleContent-queue_counter_uniquecall_entered h3,
.panelModuleContent-queue_counter_call_answered h3,
.panelModuleContent-queue_counter_call_abandoned h3,
.panelModuleContent-queue_counter_call_timeout h3,
.panelModuleContent-queue_counter_call_perc_answered h3,
.panelModuleContent-queue_counter_call_perc_abandoned h3,
.panelModuleContent-queue_counter_call_perc_timeout h3,
.panelModuleContent-queue_counter_native_sla h3,
.panelModuleContent-queue_counter_entered_sla h3 {
    margin: 0 0 10px;
    color: #0f172a;
    font-size: 15px;
    font-weight: 800;
}

.table-queue_callswaiting,
.table-agents_agentsstatus {
    width: 100%;
    border-collapse: collapse;
    padding: 0;
    font-size: 13px;
}

.table-queue_callswaiting th,
.table-agents_agentsstatus th {
    padding: 9px 8px;
    border-bottom: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #475569;
    text-align: left;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.table-queue_callswaiting td,
.table-agents_agentsstatus td {
    padding: 9px 8px;
    border-bottom: 1px solid #edf2f7;
    color: #0f172a;
    text-align: left;
}

.table-queue_callswaiting tbody tr:hover,
.table-agents_agentsstatus tbody tr:hover {
    background: #f8fafc;
}

.queue-wait-cell {
    align-items: center;
    display: flex;
    gap: 6px;
    white-space: nowrap;
}

.queueWaiting-pickup {
    align-items: center;
    background: #e0f2fe;
    border: 1px solid #bae6fd;
    border-radius: 6px;
    color: #0369a1;
    cursor: pointer;
    display: inline-flex;
    height: 24px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 24px;
}

.queueWaiting-pickup:hover,
.queueWaiting-pickup:focus {
    background: #bae6fd;
    border-color: #7dd3fc;
    color: #075985;
    outline: none;
}

.panelModuleContent-queue_counter_uniquecall_entered,
.panelModuleContent-queue_counter_call_answered,
.panelModuleContent-queue_counter_call_abandoned,
.panelModuleContent-queue_counter_call_timeout,
.panelModuleContent-queue_counter_call_perc_answered,
.panelModuleContent-queue_counter_call_perc_abandoned,
.panelModuleContent-queue_counter_call_perc_timeout,
.panelModuleContent-queue_counter_native_sla,
.panelModuleContent-queue_counter_entered_sla {
    display: flex;
    flex-direction: column;
    width: 10vw;
    min-width: 10vw;
    min-height: 160px;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    overflow: hidden;
}

.panelModuleContent-queue_counter_uniquecall_entered .queueCounter-value,
.panelModuleContent-queue_counter_call_answered .queueCounter-value,
.panelModuleContent-queue_counter_call_abandoned .queueCounter-value,
.panelModuleContent-queue_counter_call_timeout .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_answered .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_abandoned .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_timeout .queueCounter-value,
.panelModuleContent-queue_counter_native_sla .queueCounter-value,
.panelModuleContent-queue_counter_entered_sla .queueCounter-value {
    margin-top: 0;
    color: #0f172a;
    font-size: 2.8vw;
    font-weight: 900;
    line-height: 1;
}

.panelModuleContent-call_counter_inbound_calls,
.panelModuleContent-call_counter_inbound_answered_calls {
    position: relative;
    display: flex;
    flex-direction: column;
    width: calc((var(--switchboard-card-width, 15vw) - var(--switchboard-card-gap, 0.5vw)) / 2);
    min-width: calc((125px - var(--switchboard-card-gap, 0.5vw)) / 2);
    max-width: 100%;
    min-height: 112px;
    box-sizing: border-box;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 36px 8px 10px;
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
    font-family: inherit;
    text-align: center;
}

.panelModuleContent-call_counter_inbound_calls .callCounter-title,
.panelModuleContent-call_counter_inbound_answered_calls .callCounter-title {
    display: flex;
    width: 100%;
    margin: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    color: #0f172a;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
}

.panelModuleContent-call_counter_inbound_calls .callCounter-title-line,
.panelModuleContent-call_counter_inbound_answered_calls .callCounter-title-line {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.panelModuleContent-call_counter_inbound_calls .callCounter-title-sub,
.panelModuleContent-call_counter_inbound_answered_calls .callCounter-title-sub {
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}

.panelModuleContent-call_counter_inbound_calls .callCounter-value,
.panelModuleContent-call_counter_inbound_answered_calls .callCounter-value {
    align-self: stretch;
    margin-top: 2px;
    color: #0f172a;
    font-size: 38px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
}

td.agent_status::before,
.extensionCard-contact-name[data-dnd="on"]::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

td.agent_status::after {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border-radius: 999px;
    padding: 0 8px;
    background: #f1f5f9;
    color: #334155;
    font-size: 11px;
    font-weight: 800;
}

td.agent_status[data-state="NOT_INUSE"][data-pausestate=""]::after {
    background: #dcfce7;
    color: #166534;
}

td.agent_status[data-state="NOT_INUSE"][data-pausestate="PAUSED"]::after {
    background: #fef3c7;
    color: #92400e;
}

td.agent_status[data-state="INUSE"][data-dnd=""]::after {
    background: #ffedd5;
    color: #9a3412;
}

td.agent_status[data-state="UNAVAILABLE"]::after,
td.agent_status[data-dnd="on"]::after {
    background: #fee2e2;
    color: #991b1b;
}

td.agent_status[data-state="RINGING"]::after {
    background: #dbeafe;
    color: #1e40af;
}

.panelModuleContent-delete {
    position: absolute;
    top: 8px;
    right: 8px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid #fecaca;
    border-radius: 6px;
    background: #fff5f5;
    color: #b91c1c;
    cursor: pointer;
    line-height: 28px;
    text-align: center;
}

.panelModuleContent-delete:hover {
    background: #fee2e2;
}

.panelModuleContent-placeHolder {
    width: var(--switchboard-card-width, 15vw);
    min-width: 125px;
    max-width: 100%;
    min-height: 78px;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    padding: 10px;
    background: #f8fafc;
    box-shadow: none;
    font-family: inherit;
}

.panelModuleContent-placeHolder a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #1d4ed8;
    color: #ffffff;
    text-decoration: none;
}

.switchboard-content-dialog.ui-dialog {
    width: min(480px, calc(100vw - 32px)) !important;
    border: 0;
    border-radius: 8px;
    padding: 0;
    box-shadow: 0 22px 64px rgba(15, 23, 42, 0.22);
    overflow: hidden;
}

.switchboard-content-dialog .ui-dialog-titlebar {
    border: 0;
    background: #0f172a;
    color: #ffffff;
    font-weight: 800;
}

.switchboard-content-dialog .ui-dialog-content {
    padding: 22px;
}

.chooseModuleContent-modal .form-field {
    margin-bottom: 16px;
}

.chooseModuleContent-modal label {
    display: block;
    margin-bottom: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 800;
}

.chooseModuleContent-modal select {
    width: 100%;
    min-height: 40px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 0 10px;
    background: #ffffff;
    color: #0f172a;
    font-size: 14px;
}

@media (max-width: 760px) {
    body.switchboard-ready {
        overflow: auto;
    }

    .ribbon {
        height: auto;
        min-height: 56px;
        flex-wrap: wrap;
        padding: 10px 12px;
    }

    .switchboardTitleText {
        max-width: calc(100vw - 120px);
    }

    .switchboardSelector {
        left: auto;
        right: 0;
        width: min(260px, calc(100vw - 24px));
    }

    .ribbon-item-right {
        flex-wrap: wrap;
        justify-content: flex-start;
        width: 100%;
    }

    .switchboardRingtoneEditor {
        width: 100%;
        flex-wrap: wrap;
    }

    .switchboardRingtoneEditor input {
        flex: 1 1 180px;
        width: auto;
    }

    .softphoneBar {
        width: 100%;
        margin-right: 0;
        flex-wrap: wrap;
    }

    .softphoneNumber {
        flex: 1 1 150px;
        min-width: 0;
    }

    .softphoneControlsText {
        display: none;
    }

    .softphoneCallControlsPopup {
        right: 0;
        width: min(320px, 100%);
    }

    .panels.ui-tabs {
        height: auto;
        min-height: calc(100vh - 76px);
        margin: 8px;
    }

    .panels.ui-tabs .ui-tabs-nav {
        overflow-x: auto;
    }

    .panels.ui-tabs .ui-tabs-panel {
        min-height: 70vh;
    }

    .panelModule {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        width: auto !important;
        height: auto !important;
        min-height: 260px;
        margin: 8px;
    }
}

/********** AGENTS_AGENTSSTATUS - wider block for Name/Number columns **********/

.panelModuleContent-agents_agentsstatus {
    /* same total width as the four 10vw counter blocks above, including the 3 gaps between them */
    width: var(--switchboard-agents-card-width, calc(10vw * 4 + var(--switchboard-card-gap, 0.5vw) * 3));
    min-width: calc(10vw * 4 + var(--switchboard-card-gap, 0.5vw) * 3);
}

.table-agents_agentsstatus td.agentCallName,
.table-agents_agentsstatus td.agentCallNumber {
    white-space: nowrap;
}

/********** QUEUE COUNTERS - vertically centre the value **********/

.panelModuleContent-queue_counter_uniquecall_entered .queueCounter-value,
.panelModuleContent-queue_counter_call_answered .queueCounter-value,
.panelModuleContent-queue_counter_call_abandoned .queueCounter-value,
.panelModuleContent-queue_counter_call_timeout .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_answered .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_abandoned .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_timeout .queueCounter-value,
.panelModuleContent-queue_counter_native_sla .queueCounter-value,
.panelModuleContent-queue_counter_entered_sla .queueCounter-value {
    margin-top: auto;
    margin-bottom: auto;
}

/********** SOFTENED LIGHT THEME + RIBBON LOGO + CONNECTION INDICATOR **********/

/* Calmer canvas: less pure white, softer separators, lighter shadows. */
body.switchboard-ready {
    background: #e9edf3;
    color: #26313f;
}

.switchboard-ready #main {
    background: linear-gradient(180deg, #f1f4f9 0%, #e9edf3 100%);
}

.ribbon {
    border-bottom: 1px solid #e1e6ee;
    background: rgba(251, 252, 254, 0.96);
    box-shadow: none;
}

.ribbon-title {
    color: #26313f;
}

/* The tab panel was drawing a full-size bordered "grid area" behind the modules. */
.panels.ui-tabs .ui-tabs-panel {
    border: 0;
    background: transparent;
}

.panels.ui-tabs .ui-tabs-nav {
    border: 1px solid #e1e6ee;
    background: #fbfcfe;
}

.panels.ui-tabs .ui-tabs-nav li.ui-tabs-active {
    background: #3b6fd4;
}

.panelModule {
    border: 1px solid #e1e6ee;
    background: #fbfcfe;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.04);
}

.panelModuleTitle,
.panelModuleEditTitle {
    border-bottom: 1px solid #eceff4;
    color: #26313f;
}

.panelModuleContent-extensionCard,
.panelModuleContent-parkinglotCard,
.panelModuleContent-queue_callswaiting,
.panelModuleContent-agents_agentsstatus,
.panelModuleContent-queue_counter_uniquecall_entered,
.panelModuleContent-queue_counter_call_answered,
.panelModuleContent-queue_counter_call_abandoned,
.panelModuleContent-queue_counter_call_timeout,
.panelModuleContent-queue_counter_call_perc_answered,
.panelModuleContent-queue_counter_call_perc_abandoned,
.panelModuleContent-queue_counter_call_perc_timeout,
.panelModuleContent-queue_counter_native_sla,
.panelModuleContent-queue_counter_entered_sla,
.panelModuleContent-call_counter_inbound_calls,
.panelModuleContent-call_counter_inbound_answered_calls {
    border: 1px solid #e6eaf1;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.table-queue_callswaiting th,
.table-agents_agentsstatus th {
    border-bottom: 1px solid #e6eaf1;
    background: #f4f6fa;
    color: #5b6675;
}

.table-queue_callswaiting td,
.table-agents_agentsstatus td {
    border-bottom: 1px solid #f0f3f7;
    color: #26313f;
}

.panelModuleContent-queue_counter_uniquecall_entered .queueCounter-value,
.panelModuleContent-queue_counter_call_answered .queueCounter-value,
.panelModuleContent-queue_counter_call_abandoned .queueCounter-value,
.panelModuleContent-queue_counter_call_timeout .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_answered .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_abandoned .queueCounter-value,
.panelModuleContent-queue_counter_call_perc_timeout .queueCounter-value,
.panelModuleContent-queue_counter_native_sla .queueCounter-value,
.panelModuleContent-queue_counter_entered_sla .queueCounter-value {
    color: #26313f;
}

.ribbon-title .fa {
    color: #3b6fd4;
}

/* Logo in front of the switchboard name. */
.switchboardRibbonLogo {
    height: 26px;
    width: auto;
    max-width: 160px;
    object-fit: contain;
    flex: 0 0 auto;
}

/* Connection indicator moved to the right-hand end of the ribbon, as a quiet dot. */
.ribbon .switchboardConnectionIcon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-left: 2px;
    border-radius: 50%;
    font-size: 11px;
    color: #94a3b8;
    background: #f1f4f9;
    transition: color 0.15s ease, background 0.15s ease;
}

.ribbon .switchboardConnectionIcon.is-connected {
    color: #2f855a;
    background: #e8f3ec;
}

.ribbon .switchboardConnectionIcon.is-disconnected {
    color: #b4494a;
    background: #f7ebeb;
}

/********** RIBBON: long softphone status must not push the action buttons out **********/

.ribbon-title,
.ribbon-item-right {
    min-width: 0;
}

.ribbon-item-right .switchboardAction,
.ribbon-item-right .softphoneBar {
    flex: 0 0 auto;
}

.softphoneStatus {
    max-width: 150px;
    overflow: hidden;
    box-sizing: border-box;
    border-radius: 999px;
    padding: 3px 9px;
    background: #f1f4f9;
    color: #5b6675;
    font-size: 11px;
    font-weight: 700;
    text-overflow: ellipsis;
    cursor: default;
}

/********** EDIT MODE: smaller delete affordance **********/

.panelModuleContent-delete {
    top: 6px;
    right: 6px;
    width: 18px;
    height: 18px;
    border-radius: 5px;
    font-size: 10px;
    line-height: 18px;
}

/********** EXTENSION CARD: name as title, centred photo, status underneath **********/

.panelModuleContent-extensionCard {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-height: 132px;
    padding: 26px 10px 12px;
    text-align: center;
}

/* Let the info wrapper's children become direct flex items so each can be ordered. */
.extensionCard-contact-info {
    display: contents;
}

.extensionCard-contact-name {
    order: 1;
    justify-content: center;
    max-width: 100%;
    font-size: 15px;
}

.extensionCard-contact-phone {
    order: 2;
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.extensionCard-contact-image {
    order: 3;
    flex: 0 0 auto;
    margin: 2px 0 0;
}

.extensionCard-contact-image img {
    width: 58px;
    height: 58px;
}

.extensionCard-contact-talking-to {
    order: 4;
    max-width: 100%;
    margin: 2px 0 0;
    font-size: 12px;
}

/* No call in progress - do not reserve an empty line. */
.extensionCard-contact-talking-to:empty {
    display: none;
}
