﻿.cbButton1 {
    width: 100%;
    border-radius: 25px;
    height: 43px;
    border: 1px solid #4a76a8;
    background: #4a76a8;
    text-align: center;
    padding-top: 10px;
    margin: 5px 0px;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s linear 0s;
    color: #fff;
}

    .cbButton1:hover {
        background: #6792c3;
    }

.cbButton2 {
    width: 100%;
    border-radius: 25px;
    height: 43px;
    border: 1px solid #2c517b;
    background: #2c517b;
    text-align: center;
    padding-top: 10px;
    margin: 5px 0px;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s linear 0s;
    color: #fff;
}
    .cbButton2:hover {
        background: #426c9c;
    }
    .smallestSize {
    min-width: 320px;
}

.cbcCount {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #f20101;
    color: #fff;
    text-align: center;
    vertical-align: middle;
    position: absolute;
    top: -2px;
    left: 37px;
}

.cbcCountSmall {
    background-color: #f20101;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    color: #fff;
    position: absolute;
    top: 2px;
    margin-left: 21px;
    text-align: center;
    vertical-align: middle;
    font-size: 13px;
}

#contactBookContainer {
    top: 10px;
    left: 10px;
    position: fixed;
    z-index: 10000;
    background-color: #e8eef6;
    width: auto;
    box-shadow: 1px 4px 7px rgba(0, 4, 13, 0.30);
    font-family: Lato, sans-serif;
}

    #contactBookContainer form {
        margin: 0px !important;
    }

.cbMinHeight {
    min-height: 663px;
}

#contactBookContainerheader {
    background-color: #4a76a8;
    height: 41px;
    width: 100%;
}

.cbHeadFunctionContain {
    color: #c1cedd;
    display: inline-block;
    transition: all 0.2s linear 0s;
}

.cbHeadButtonsContain {
    float: right;
    padding: 11px;
    color: #c1cedd;
}

    .cbHeadButtonsContain span {
        margin-left: 14px;
        cursor: pointer;
    }

        .cbHeadButtonsContain span:hover {
            color: #fff;
        }

.cbHeadFunctionContain #cbNav {
    margin-left: 3px;
}

    .cbHeadFunctionContain #cbNav li {
        padding: 11px;
        cursor: pointer;
    }

        .cbHeadFunctionContain #cbNav li:hover {
            color: #fff;
            transition: all 0.2s linear 0s;
        }

#cbConsultant #cbConsultantCount {
    background-color: #f20101;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    color: #fff;
    position: absolute;
    top: 6px;
    margin-left: 9px;
    text-align: center;
    vertical-align: middle;
    font-size: 13px;
}

#cbFolderAction {
    margin-left: 14px;
    display: inline;
}

#cbFolderListCont {
    position: absolute;
    width: 240px;
    box-shadow: 1px 4px 9px rgba(0, 4, 13, 0.2);
    overflow: auto;
    border: 1px solid #b5b4b5;
    z-index: 20;
    left: 48px;
    background: #fff;
    margin-top: 9px;
    min-height: 20px;
    display: none;
}

.cbflTitle {
    color: #444444;
    display: inline-block;
    font-size: 16px;
    font-family: Lato,sans-serif;
    transition: all 0.2s linear 0s;
}

    .cbflTitle:hover {
        color: #262626;
        transition: all 0.2s linear 0s;
    }

.cbflIcon {
    color: #5a82b0;
    display: inline-block;
    width: 30px;
    padding: 0px 5px;
}

#cbFolderList {
    list-style-type: none;
    width: 100%;
}

    #cbFolderList li {
        border-bottom: 1px solid #eeeeee;
        padding: 7px 10px;
        width: 100%;
        background: #fff;
        transition: all 0.2s linear 0s;
        text-align: left;
    }

        #cbFolderList li:hover {
            background-color: #dee8f3;
            transition: all 0.2s linear 0s;
        }

.cbHomeCont {
    width: 100%;    
    background: #fff;
    color: #a1b4cd;
    padding-top: 40px;
    overflow-y:auto;
}

#cbContent {
    width: 100%;
    background: #E8EEF6;
    display: inline-block;
    position: absolute;
}

.cbContentHeight {
    height: 622px;
}



.cbhMenuCont {
    padding: 10px;
    width: 100%;
}

.cbhButton {
    width: 100%;
    border-radius: 25px;
    height: 50px;
    border: 1px solid #426081;
    color:#444444;
    text-align: center;
    padding-top: 13px;
    margin: 12px 0px;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s linear 0s;
}

    .cbhButton:hover {
        border: 1px solid #54769c;
        background: #7199c7;
        color: #fff;
        transition: all 0.2s linear 0s;
    }

.cbhMap {
    padding: 25px 0px;
    display: block;
    font-size: 60px;
    width: 100%;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s linear 0s;
}

    .cbhMap:hover {
        color: #fff;
        transition: all 0.2s linear 0s;
    }

.cbhLogo {
    text-align: center;
}

#cbhContManHead {
    display: none;
    text-align: center;
    font-size: 22px;
    margin-top: 10px;
    margin-bottom: 50px;
}

#cbContSearchMenu {
    padding: 9px 15px;
    background: #2c517b;
}

#cbSubMenuTxt {
    color: #a1b4cd;
    display: inline-block;
    width: 21%;
    font-size: 18px;
}

#cbChatCont {
    display: inline-block;
    width: 100%;
    position: absolute;
    height:100%;
}

#cbChatMenu {
    padding: 4px 10px;
    background: #fff;
    height: 39px;
    display: inline-block;
    width: 100%;
}

#cbChatMenuProfile {
    display: inline-block;
    color: #444444;
    width: 68%;
    overflow: hidden;
    white-space: nowrap;
}

.cbCMPImg {
    width: 31px;
    height: 31px;
    border-radius: 50%;
}

.cbCMPName {
    display: inline-block;
    vertical-align: middle;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
}

.cbCMPMenu {
    display: inline-block;
    width: 30%;
    vertical-align: super;
    font-size: 22px;
    color: #4a76a8;
    padding: 0px 3px;
    cursor: pointer;
    transition: width 0.4s ease;
    text-align: right;
}

    .cbCMPMenu a {
        color: #4a76a8;
    }

    .cbCMPMenu i:hover {
        color: #74aae6;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
        transition: width 0.4s ease;
    }

#cbChatCommContain {
    width: 100%;
    display: inline-block;
    background: #e8eef6;
    position: relative;
    height:auto;
}

.cbcMedia {
    height: 212px;
    display: inline-block;
    background: #aabfd7;
    text-align: center;
    width: 100%;
    display:none;
}

.cbcMsgList {
    display: inline-block;
    /*height: 488px;*/
    width: 100%;
    overflow-x: hidden;
    overflow-y: scroll;
    padding: 10px 15px;
    color: #e8eef6;
    box-shadow: inset 0px 11px 15px -10px rgba(0, 0, 0, 0.23), inset 0px -11px 15px -10px rgba(0, 0, 0, 0.23);
}

.cbcmImg {
    height: 142px;
    width: 142px;
    border-radius: 50%;
    margin-top: 15px;
}

.cbcmBtn {
    display: inline-block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #fff;
    text-align: center;
    font-size: 22px;
    vertical-align: bottom;
    line-height: 38px;
    color: #4a76a8;
    margin: 8px 10px;
    cursor: pointer;
    transition: width 0.4s ease;
}

    .cbcmBtn:hover {
        border: 1px solid #4a76a8;
        transition: width 0.4s ease;
        box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
    }

    .cbcmBtn i {
        padding-top: 8px;
    }

.cbcmBtnRed {
    display: inline-block;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #f20101;
    text-align: center;
    font-size: 22px;
    vertical-align: bottom;
    line-height: 38px;
    color: #fff;
}

.cbcmPrev {
    box-sizing: border-box;
    padding: 0.5rem 1rem;
    background: #74aae6;
    border-radius: 18px 18px 18px 18px;
    min-height: 2.25rem;
    max-width: 90%;
    border: 1px solid #bccde0;
    color: #444444;
    position: relative;
    cursor:pointer;
    text-align:center;
    margin-bottom:5px;
    margin:auto 0px;
}

.cbcmMessage {
    box-sizing: border-box;
    padding: 0.5rem 1rem;
    background: #FFF;
    border-radius: 18px 0px 18px 18px;
    min-height: 2.25rem;
    max-width: 90%;
    border: 1px solid #bccde0;
    color: #444444;
    position:relative;
}



    .cbcmContact .cbcmDate {
        color: #fff;
    }

    .cbcmContact .cbcmActionMenu i {
        color: #fff;
    }

    .cbcmContact .cbcmView i {
        color: #fff;
    }

.cbcmDateView {
    display: inline-block;
    width: 100%;
}

.cbcmDate {
    display: inline-block;
    float: left;
    color: #444444;
    font-style: italic;
    font-size: 9px;
}

.cbcmView {
    display: inline-block;
    float: right;
    color: #224b7a;
}

    .cbcmView i {
        cursor: pointer;
    }

        .cbcmView i:hover {
            color: #74aae6;
            transition: width 0.4s ease;
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.41);
        }

.cbcmMsg {
    display: inline-block;
    width: 100%;
    margin-top: 4px;
    font-size: 15px;
    overflow-wrap: break-word;
    word-wrap: break-word;
}

.cbcmActionMenu {
    display: inline-block;
    width: 100%;
    text-align: right;
    color: #224b7a;
    font-size: 18px;
    transition: width 0.4s ease;
    height:18px;
}

    .cbcmActionMenu i {
        cursor: pointer;
        margin: 0 10px;
    }

        .cbcmActionMenu i:hover {
            color: #74aae6;
            transition: width 0.4s ease;
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.41);
        }
.cbcmProfile {
    width: 4rem;
    height: 4rem;
    position: absolute;
    float:right;
    right:-41px;
    top: -5px;
    display:inline-block;
}
    .cbcmProfile .memPostChat {
        top: 0px;
        left: 22px;
        color: #444444;
    }

.cbcmContact {
    margin: 1rem 0 1rem auto;
    border-radius: 0px 18px 18px 18px;
    background: #4a76a8;
    color: white;
}
.cbcmContact .cbcmProfile {
    margin-left: -50px;
    position: relative;
    right: auto;
    float:left;
}
.cbcmProfileImg {
    width: 40px;
    height: 40px;
    background-size: cover;
    background-position: center;
    border-radius: 50%;
}

.cbcmActionContain {
    display: inline-block;
    width: 100%;
    padding: 10px 15px;
}

.cbcmActions {
    display: inline-block;
    width: 100%;
    font-size: 24px;
    color: #4a76a8;
    margin-top: 5px;
}

    .cbcmActions i {
        cursor: pointer;
    }

        .cbcmActions i:hover {
            color: #74aae6;
            transition: width 0.4s ease;
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.41);
        }

.cbcmActLeft {
    display: inline-block;
    float: left;
}

.cbcmActRight {
    display: inline-block;
    float: right;
}

.cbSubBtn {
    border-radius: 3px;
    height: 34px;
    border: 1px solid #608cbd;
    text-align: center;
    padding: 8px 6px;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s linear 0s;
    color: #c1cedd;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
    margin: 5px 0px;
}

    .cbSubBtn:hover {
        border: 1px solid #71a4dc;
        background: #3e70a9;
        color: #fff;
        transition: all 0.2s linear 0s;
    }

#cbAddCont {
    font-size: 22px;
}
    #cbAddCont i {
        margin-top: -3px;
    }

#cbAddGroupCont {
    display: inline-block;
    width: 100%;
    position: absolute;
}

#cbagMenu {
    padding: 9px 15px;
    background: #2c517b;
}

.cbMenuBack {
    color: #a1b4cd;
    display: inline-block;
    width: 10%;
    font-size: 18px;
    cursor: pointer;
}

.cbagmTxt {
    color: #c1cedd;
    display: inline-block;
    width: 70%;
    font-size: 18px;
}

.cbagmAction {
    border-radius: 3px;
    height: 27px;
    width: 27px;
    border: 1px solid #608cbd;
    text-align: center;
    padding: 6px 6px;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s linear 0s;
    color: #c1cedd;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
    margin: 5px 0px;
}

    .cbagmAction:hover {
        border: 1px solid #71a4dc;
        background: #3e70a9;
        color: #fff;
        transition: all 0.2s linear 0s;
    }

.cbagmDelete {
    display: inline-block;
    color: #c1cedd;
    cursor:pointer;
}
.cbagmDelete:hover {
    color: #ff3737;
}

.cbagmActionCont {
    text-align: right;
    display: inline-block;
    width: 17%;
}

#cbagForm {
    display: inline-block;
    width: 100%;
    padding: 10px;
    background: #DEE4EB;
    height: 557px;
}

#cbagfInput {
    padding: 20px 10px;
    width: 100%;
    display: inline-block;
}

#cbagfUpload {
    width: 105px;
    height: 105px;
    border-radius: 50%;
    display: inline-block;
    background: #5181b8;
    color: #fff;
    font-size: 37px;
}

    #cbagfUpload i {
        margin-top: 30px;
    }

#cbagfImage {
    display: inline-block;
    width: 100%;
    text-align: center;
    margin-top: 40px;
    cursor: pointer;
    transition: all 0.4s linear 0s;
}

    #cbagfImage:hover #cbagfUpload {
        transition: all 0.4s linear 0s;
        background: #608cbd;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
    }

    #cbagfImage:hover #cbagfTxt {
        transition: all 0.4s linear 0s;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
    }

#cbagfTxt {
    font-size: 18px;
    color: #444444;
    margin-top: 20px;
}

#cbSearchFrom {
    width: 70%;
    display: inline-block;
}

    #cbSearchFrom .cbsContainer {
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

.cbsContainer button {
    background: none;
    border: none;
    width: 0px;
}

#cbSearchFrom input[type=text] {
    position: relative;
    padding: 10px 30px 10px 10px;
    width: 100%;
    color: #000000;
    height: 33px;
    border: none;
    border-radius: 5px;
    transition: width 0.4s ease;
    outline: none;
}

    #cbSearchFrom input[type=text]:focus {
        background: #fff;
    }

#cbSearchFrom i {
    position: relative;
    left: -26px;
    color: #4a76a8;
}

#cbContactsCont {
    display: inline-block;
    width: 100%;
    position: absolute;
}

#indexResults {
    overflow-x: hidden;
    overflow-y: scroll;
    white-space: nowrap;
    width: 100%;
    height: 559px;
    display: inline-block;
    position: absolute;
    background: #fff;
}

.cbcImg {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    transition: width 0.4s ease;
}

.cbcName {
    width: 64%;
    display: inline-block;
    color: #444444;
    overflow: hidden;
    white-space: nowrap;
}


.cbcTime {
    display: inline-block;
    width: 24%;
    font-size: 14px;
}

.cbcChat {
    width: 7%;
    display: inline-block;
    color: #ee843f;
}

.cbcChatOn {
    color: #224b7a;
}

.cbcDet {
    border:1px solid rgba(0, 0, 0, 0.06);
    padding: 2px 4px;
    background: rgba(255, 255, 255, 0.31);
}
.cbcAbout {
    float: left;
    width: 100%;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
    margin-top: 1px;
    color: #4a76a8;
    padding: 2px 4px;
    background: rgba(255, 255, 255, 0.31);
    border: 1px solid rgba(0, 0, 0, 0.06);
}
.cbcDet:hover {
    border: 1px solid rgba(0, 0, 0, 0.19);
    background: rgba(255, 255, 255, 0.60);
}

.cbcAbout:hover {
    border: 1px solid rgba(0, 0, 0, 0.19);
    background: rgba(255, 255, 255, 0.60);
}
    #people-list {
    margin-top: 20px;
    max-height: 450px;
    position: relative;
}

#indexResults ul {
    display: inline-block;
    list-style: outside none none;
    margin-bottom: 0;
    width: 100%;
    background: #fff;
}

#indexResults li {
    display: block;
    position: relative;
    width: 100%;
    padding: 10px;
    cursor: pointer;
}

    #indexResults li:hover {
        background: #e4edf7;
    }

        #indexResults li:hover .cbcImg {
            border: 2px solid#5181b8;
            transition: width 0.4s ease;
        }


#indexResults figure {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
    width: 17%;
    position: relative;
}

.friendz-meta {
    display: inline-block;
    line-height: 20px;
    padding-left: 10px;
    vertical-align: middle;
    width: 83%;
}

.cbcMsg {
    margin: auto;
    width: 100%;
    text-align: center;
    background: #bbefdf;
    font-weight: bold;
    background: -moz-linear-gradient(top, #bbefdf 0%, rgba(125,185,232,0) 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(top, #bbefdf 0%,rgba(125,185,232,0) 100%); /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(to bottom, #bbefdf 0%,rgba(125,185,232,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bbefdf', endColorstr='#007db9e8',GradientType=0 ); /* IE6-9 */
}

#cbDetailsCont {
    display: inline-block;
    width: 100%;
    position: absolute;
    overflow-y:auto;
}

#cbDetailMenu {
    padding: 4px 10px;
    background: #fff;
    height: 39px;
    display: inline-block;
    width: 100%;
    border-bottom: 1px solid #dee8f3;
}

#cbdBack {
    color: #4a76a8;
    display: inline-block;
    width: 12%;
    font-size: 23px;
    vertical-align: top;
    position: relative;
    height: 28px;
    padding-top: 6px;
    cursor: pointer;
    transition: width 0.4s ease;
}

#cbDetailFormContainer {
    display: inline-block;
    height: 541px;
    width: 100%;
    overflow-x: hidden;
    overflow-y: scroll;
    padding: 10px 5px;
    background: #DEE4EB;
}

    #cbDetailFormContainer .form-group {
        display: inline-block;
        width: 100%;
        margin: 4px 0px;
    }

@media (max-width: 991px) and (min-width: 768px) {
    #cbDetailFormContainer .form-group {
        padding-left: 3px;
        padding-right: 3px;
        padding-top: 0px;
    }
}

#cbDetailFormContainer fieldset {
    display: inline-block;
    width: 100%;
    margin: 0px;
}

.requiredField:before {
    color: #ff560c;
    content: "✭";
    white-space: pre;
    margin-right: 2px;
}

.cbdLabel {
    width: 38%;
    display: inline-block;
    font-size: 15px;
}

    .cbdLabel i {
        margin-right: 4px;
        color: #224b7a;
    }

.cbdInput {
    width: 60%;
    display: inline-block;
}

.cbdLabelSmall {
    width: 15%;
    display: inline-block;
    font-size: 16px;
}

.cbdInputSmall {
    width: 21%;
    display: inline-block;
}

#contProfileImg {
    width: 73px;
    height: 73px;
    border: 1px solid #224b7a;
    border-radius: 100%;
    display: inline-block;
    margin-left: 10px;
}

#cbDataImgEdit {
    font-size: 24px;
    margin-top: -67px;
    margin-left: 67px;
    display: block;
    color: #224b7a;
}

#cbDataProfileImg {
    display: inline-block;
    cursor: pointer;
    margin-top: 10px;
    margin-bottom: 10px;
    height: 73px;
}

    #cbDataProfileImg:hover i, img {
        text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.41);
    }

#cbDataUpdate {
    display: inline-block;
    cursor: pointer;
    padding: 10px;
    text-align: center;
    color: #fff;
    font-weight: bold;
    background: #2c517b;
    width: 100%;
}

    #cbDataUpdate:hover {
        background: #4a76a8;
    }

#cbDocumentsCont {
    display: inline-block;
    width: 100%;
    position: absolute;
}

.contDocFrom {
    width: 90%;
    color: #224b7a;
    font-size: 11px;
    text-align: left;
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
}

    .contDocFrom span {
        font-weight: bold;
    }

.contDocDateDelete {
    display: inline-block;
    float: right;
    font-size: 10px;
    width:100%;
    margin-top:5px;
}

.contDocDate {
   font-size: 10px;
    margin: 1px 0px;
    float:left
}

.contDocFrom2 {
    width: 100%;
    font-size: 11px;
    margin: 1px 0px;
}


.contDocDelete {
    color: #224b7a;
    display: inline-block;
    text-decoration: underline;
    cursor: pointer;
    margin: 0px 0px 5px 9px;
    font-size: 14px;
    float:right;
}

    .contDocDelete:hover {
        color: #74aae6;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
        transition: width 0.4s ease;
    }

.contDocDetails {
    width: 100%;
    display: inline-block;
    text-align: left;
    margin-top: 3px;
    vertical-align:top;
}

.contDocType {
    display: inline-block;
    font-size: 36px;
    padding-top:4px;
    float: left;
    color: #224b7a;
}

.contDocName {
    display: inline-block;
    margin-left: 8px;
    max-width: 370px;
    padding-top: 0px;
    text-overflow: ellipsis;
    font-size: 13px;
}

.contDocName2 {
   font-size: 13px;
   color:seagreen;
   font-weight:bolder;
   cursor:pointer;
}


.contDocAddBtn {
    font-size: 15px;
    float: left;
    cursor: pointer;
    color: #224b7a;
    margin: 2px 0px 2px 139px;
}

    .contDocAddBtn:hover {
        color: #74aae6;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
        transition: width 0.4s ease;
    }

.noteActive {
}

.contDocDownload {
    display: inline-block;
    cursor: pointer;
}

    .contDocDownload:hover {
        color: #74aae6;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
        transition: width 0.4s ease;
    }

#contDocNotes {
    width: 312px;
    height: 60%;
}

#cbDocResults {
    overflow-x: hidden;
    overflow-y: scroll;
    white-space: nowrap;
    width: 100%;
    height: 583px;
    display: inline-block;
    position: absolute;
    background: #fff;
    margin-top: 39px;
}

    #cbDocResults ul {
        display: inline-block;
        list-style: outside none none;
        margin-bottom: 0;
        width: 100%;
        background: #fff;
    }

    #cbDocResults li {
        display: block;
        position: relative;
        width: 100%;
        padding: 10px;
        border-bottom: 1px solid #dee8f3;
    }

        #cbDocResults li:hover {
            background: #dee8f3;
        }

.cbdrWarning {
    color: #c00202;
}

#cbdDocMenu {
    color: #4a76a8;
    display: inline-block;
    width: 12%;
    font-size: 23px;
    vertical-align: top;
    position: relative;
    height: 28px;
    padding-top: 6px;
    cursor: pointer;
    transition: width 0.4s ease;
}

    #cbdDocMenu:hover {
        color: #74aae6;
        text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.41);
        transition: width 0.4s ease;
    }

#cbDocMenuDrop {
    width: 200px;
    background: #fff;
    position: absolute !important;
    z-index: 18;
    box-shadow: 0 10px 18px -12px rgba(0, 0, 0, 0.5);
    min-height: 200px;
    border: 1px solid #dee8f3;
}

    #cbDocMenuDrop ul {
        display: inline-block;
        list-style: outside none none;
        margin-bottom: 0;
        width: 100%;
        background: #fff;
    }

    #cbDocMenuDrop li {
        display: block;
        position: relative;
        width: 100%;
        padding: 10px;
        cursor: pointer;
        border-bottom: 1px solid #dee8f3;
    }

        #cbDocMenuDrop li:hover {
            background: #dee8f3;
        }

        #cbDocMenuDrop li i {
            display: inline-block;
            padding-right: 6px;
            color: #5a82b0;
        }

.docMenuOpen {
    display: none;
}

.docmClosed {
    display: block;
}

.cbdResultType {
    cursor: default;
    font-size: 20px;
    font-weight: bold;
    color: #c1cedd;
    background: #2c517b;
    text-align: center;
    padding: 5px 10px !important;
}

    .cbdResultType:hover {
        background: #2c517b !important;
    }

.docAddNoteFrm {
    display: inline-block;
    width: 100%;
    padding: 5px 3px;
}

    .docAddNoteFrm textarea {
        resize: vertical;
        background: #fff;
        border: 2px solid #5a8ec9;
        padding: 10px;
        width: 100%;
        font-size: 14px;
    }

.docAddNoteBtn {
    display: inline-block;
    width: 100%;
    padding: 5px;
    height: 30px;
    border-radius: 15px;
    color: #c1cedd;
    background: #2c517b;
    text-align: center;
    cursor: pointer;
    margin-top: 10px;
}

.cbMsgContainer {
    margin-top: 40px;
    background: #fff;
    border: 1px solid #4a76a8;
    display: inline-block;
    width: 100%;
    width: -webkit-fill-available;
}

.cbMsgHead {
    width: 100%;
    background: #4a76a8;
    padding: 5px;
    display: inline-block;
}

.cbMsgFaq {
    float: right;
}

.cbMsgBody {
    background: #fff;
    width: 100%;
    padding: 20px;
    height: 84%;
}

.cbMsgTitle {
    text-align: center;
    color: #2c517b;
    font-size: 24px;
}

.cbMsgLogo {
    text-align: center;
    margin-top: 5px;
}

.cbMsgTxt {
    text-align: center;
    color: #444444;
    font-size: 18px;
    margin-top: 20px;
}

.cbMsgFrm {
    margin-top: 40px;
}

.FrmIcon {
    text-align: center;
    padding-top: 12px;
    padding-left: 0px;
    padding-right: 0px;
    font-size: 24px;
}

.iconBlue {
    color: #4a76a8;
}

.iconGrey {
    color: #9a9a9a;
    cursor: pointer;
}

.noStyle {
    border: none;
    box-shadow: none;
}

.cbMsgInputRow {
    border-bottom: 1px solid #9a9a9a;
    display: inline-block;
    width: 100%;
    padding-bottom: 5px;
}

.cbMsgContainer a {
    text-decoration: underline;
}

#msg {
    background: #ffda98;
    padding: 6px;
    color: #560000;
    margin-top: 5px;
    font-weight: bold;
    display: none;
}

#cbAppointAction {
    margin-left: 14px;
    display: inline;
}

#cbAppointListCont {
    position: absolute;
    width: 240px;
    box-shadow: 1px 4px 9px rgba(0, 4, 13, 0.2);
    overflow: auto;
    border: 1px solid #b5b4b5;
    z-index: 20;
    left: 48px;
    background: #fff;
    margin-top: 9px;
    min-height: 20px;
    display: none;
}

#cbAppointList {
    list-style-type: none;
    width: 100%;
}

    #cbAppointList li {
        border-bottom: 1px solid #eeeeee;
        padding: 7px 10px;
        width: 100%;
        background: #fff;
        transition: all 0.2s linear 0s;
        text-align: left;
    }


.cbcGroupVisitor {
    background: #ece9fb;
    border: 1px solid #d8d4f1;
}


.cbcGroupNotVisitor {
    background: #eefbed;
    border: 1px solid #c4eac1;
}

.cbcContactVisitor {
    background: #bcecee61;
    border: 1px solid #d8d4f1;
}

.cbMenuDropList {
    right: 20px;
    list-style: outside none none;
    padding-left: 10px;
    position: absolute;
    text-align: left;
    /*top: 100%;*/
    background: #fff;
    width: 82px;
    opacity: 1;
    /*visibility: hidden;*/
    box-shadow: 4px 7px 10px 0 rgba(0, 0, 0, 0.33);
    transition: all 0.2s linear 0s;
    border-radius: 0 0 5px 5px;
    border-top: 2px solid;
    z-index: 1;
    display: none;
    
}

    .cbMenuDropList li {
        cursor:pointer;
        display: list-item;
        text-align: -webkit-match-parent;
        position: relative;
        border-radius: 0 0 5px 5px;
        display: inline-block;
        font-size: 18px;
        font-weight: 500;
        padding: 6px 0px;
        transition: all 0.2s linear 0s;
        width: 100%;
    }

        .cbMenuDropList li:hover {
            background: #f5f5f5 none repeat scroll 0 0;
            padding-left: 10px;
        }



#cbRecentChat {
    background: #bccde0;
    padding: 3px;
    position: absolute;
    top: 50px;
    right: -31px;
    width: 351px;
    height: 600px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    z-index: -1;
    box-sizing: border-box;
    cursor: pointer;
    box-shadow: 1px 4px 7px rgba(0, 4, 13, 0.30);
    -webkit-transition: -webkit-transform 500ms;
    transition: -webkit-transform 500ms;
    transition: transform 500ms;
    transition: transform 500ms, -webkit-transform 500ms;
}
/*#cbRecentChat:hover {
                -webkit-transform: translate(23rem, 0px);
                transform: translate(23rem, 0px);
            }*/
#cbrcMenu {
    float: right;
    height: 100%;
    background: #4a76a8;
    border-radius: 12px;
}

    #cbrcMenu:hover {
        background: #5787be;
    }

        #cbrcMenu:hover i {
            color: #fff;
        }

    #cbrcMenu i {
        color: #c1cedd;
        margin-top: 10px;
        margin-left: 5px;
    }

#cbrcCount {
    font-size: 18px;
    margin-top: 1px;
    margin-right: 1px;
    color: #fff;
    width: 25px;
    height: 25px;
    background: #FF0000;
    border-radius: 50%;
    text-align: center;
}

#cbrcListContain {
}

.rccpImg {
    width: 40px;
    height: 40px;
    background-size: cover;
    background-position: center;
    border-radius: 50%;
}

.rccImg {
    position: absolute;
    right: 16px;
}

.recentContChat {
    position: relative;
    margin-bottom: 10px;
    margin-right: 32px;
    margin-top: 10px;
    padding-right: 15px;
    height: 53px;
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
    -webkit-box-pack: center;
    justify-content: center;
    background: #fff;
    cursor: pointer;
}

    .recentContChat:hover {
        background: rgba(255, 255, 255, 0.58);
    }

.rccCount {
    box-sizing: border-box;
    position: absolute;
    width: 20px;
    height: 20px;
    text-align: center;
    font-size: 16px;
    padding-top: 0px;
    border-radius: 50%;
    top: 3px;
    right: 9px;
    background: #FF0000;
    color: white;
}

.rccName {
    position: absolute;
    right: 66px;
    font-weight: bold;
    text-align: right;
    top: 0px;
    font-size: 18px;
    width: 150px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.rccMessage {
    top: 26px;
    position: absolute;
    font-size: 16px;
    color: #414141;
    right: 66px;
    text-align: right;
    width: 150px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.cbBtnWrap {
    border-radius: 3px;
    height: 31px;
    border: 1px solid #608cbd;
    text-align: center;
    padding: 3px 6px !important;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s linear 0s;
    color: #c1cedd;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
    margin: 4px 2px;
}

    .cbBtnWrap:hover {
        border: 1px solid #71a4dc;
        background: #5b8ec8;
        color: #fff;
        transition: all 0.2s linear 0s;
    }

.cbSubmitBtn {
    width: 100%;
    border-radius: 25px;
    height: 50px;
    background: #2c517b;
    text-align: center;
    padding-top: 13px;
    display: inline-block;
    cursor: pointer;
    transition: all 0.2s linear 0s;
    color: #fff;
    margin-top: 15px;
}

#cbMsgArea {
    position: absolute;
    padding: 10px;
    width: 100%;
    height: -webkit-fill-available;
    background: rgba(255, 255, 255, 0.00);
    z-index: 1;
    display: none;
}

.msgCloseChat {
    width: 16px;
    height: 16px;
    position: absolute;
    top: 13px;
    right: 8px;
    cursor: pointer;
}

#contactBookInner {
    display: inline-block;
    position: relative;
    height: 100%;
    width: 100%;
}
#cbSubMenuTxtContacts {
    color: #a1b4cd;
    display: inline-block;
    width: 14%;
    font-size: 18px;
}

.ccConsultant {
    display: inline-block;
    cursor: pointer;
}

.ccmMenu {
    right: 20px;
    margin-top: -207px;
    list-style: outside none none;
    padding-left: 10px;
    position: absolute;
    text-align: left;
    background: #fff;
    width: 82px;
    opacity: 1;
    box-shadow: 4px 7px 10px 0 rgba(0, 0, 0, 0.33);
    transition: all 0.2s linear 0s;
    border-radius: 5px 5px 0 0;
    border-bottom: 2px solid;
    z-index: 1;
    display: none;
}



@-moz-document url-prefix() {
    .ccmMenu {
        margin-top: -262px;
    }
}

.ccmMenu li {
    cursor: pointer;
    display: list-item;
    text-align: -webkit-match-parent;
    position: relative;
    border-radius: 0 0 5px 5px;
    display: inline-block;
    font-size: 18px;
    font-weight: 500;
    padding: 6px 0px;
    transition: all 0.2s linear 0s;
    width: 100%;
}

.ccmMenu a {
    color: #4a76a8;
}

.ccmMenu li:hover {
    background: #f5f5f5 none repeat scroll 0 0;
    padding-left: 10px;
}

.noConsultant {
    color: #000 !important;
}

    .noConsultant:hover {
        color: #dd7300 !important;
    }

.cancelConsultant {
    color: #ff1700 !important;
}

    .cancelConsultant:hover {
        color: #d41300 !important;
    }

#zoomWindow {
    top: 10px;
    left: 10px;
    position: fixed;
    z-index: 10000;
    background-color: #e8eef6;
    width: 500px;
    height: 600px;
    box-shadow: 1px 4px 9px rgba(0, 4, 13, 0.2);
    font-family: Lato, sans-serif;
}

    #zoomWindow form {
        margin: 0px !important;
    }

#zoomWindowheader {
    display: inline-block;
    width: 100%;
    text-align: right;
    background: #4b83b1;
    color: #fff;
    padding: 5px 10px;
    cursor: move;
}

/* ============================================================================
   FREGA-GREEN THEME FOUNDATION  (Track A, slice 1 - appended 2026-07-06)
   Recolours the Contact Book from legacy VK-blue to Frega green.
   Palette per c:\...\design-system\MASTER.md section 2 (brand greens).
   ADDITIVE override block: every rule above this banner is untouched, so the
   BOM / CRLF / non-ASCII bytes are preserved. Reversible by deleting from this
   banner to EOF. Scoped under #contactBookContainer so it cannot leak to hosts.
   ========================================================================== */
#contactBookContainer {
    --brand: #4A8A68;
    --brand-strong: #136242;
    --brand-deep: #044D31;
    --brand-light: #86AF99;
    --brand-subtle: #F6F8F7;
    --cb-ground: #E7EEE9;
    --bubble-sent: #E4F1E9;
    --chat-ground: #E6ECE8;
    --tick: #2FA96A;
    --badge: #F0413B;
    --ink: #0F1A13;
    --ink-muted: #7A897F;
    --hair: #E5ECE7;
    background: var(--cb-ground);
}

/* ---- header band + nav rail (was #4a76a8) ---- */
#contactBookContainer #contactBookContainerheader { background: var(--brand); }
#contactBookContainer .cbHeadFunctionContain,
#contactBookContainer .cbHeadButtonsContain { color: #dbe7df; }
#contactBookContainer .cbBtnWrap { border-color: rgba(255,255,255,0.30); color: #eef5f0; }
#contactBookContainer .cbBtnWrap:hover { border-color: rgba(255,255,255,0.55); background: var(--brand-strong); color: #fff; }

/* ---- sub / search bands (was #2c517b) ---- */
#contactBookContainer #cbContSearchMenu,
#contactBookContainer #cbagMenu { background: var(--brand-strong); }
#contactBookContainer #cbSubMenuTxt,
#contactBookContainer #cbSubMenuTxtContacts,
#contactBookContainer .cbagmTxt,
#contactBookContainer .cbMenuBack { color: #cfe0d5; }
#contactBookContainer .cbSubBtn,
#contactBookContainer .cbagmAction { color: #dcebe2; border-color: rgba(255,255,255,0.35); }
#contactBookContainer .cbSubBtn:hover,
#contactBookContainer .cbagmAction:hover { border-color: #8fd0ad; background: var(--brand); color: #fff; }
#contactBookContainer #cbSearchFrom i { color: var(--brand); }

/* ---- generic buttons (were blue) ---- */
#contactBookContainer .cbButton1 { background: var(--brand); border-color: var(--brand); }
#contactBookContainer .cbButton1:hover { background: var(--brand-strong); }
#contactBookContainer .cbButton2,
#contactBookContainer .cbSubmitBtn,
#contactBookContainer #cbDataUpdate,
#contactBookContainer .docAddNoteBtn,
#contactBookContainer .cbdResultType { background: var(--brand-strong); border-color: var(--brand-strong); }
#contactBookContainer .cbButton2:hover,
#contactBookContainer #cbDataUpdate:hover { background: var(--brand); }
#contactBookContainer .cbdResultType:hover { background: var(--brand-strong) !important; }
#contactBookContainer .cbhButton:hover { border-color: var(--brand); background: var(--brand); color: #fff; }

/* ---- CONTACTS LIST ---- */
#contactBookContainer #cbContent { background: var(--cb-ground); }
#contactBookContainer #indexResults li:hover { background: #e9f2ec; }
#contactBookContainer #indexResults li:hover .cbcImg { border-color: var(--brand) !important; }
#contactBookContainer .cbcAbout { color: var(--brand); }
#contactBookContainer .cbcChat { color: var(--ink-muted); }        /* was orange #ee843f */
#contactBookContainer .cbcChat i.chatOn,
#contactBookContainer i.chatOn,
#contactBookContainer .cbcChatOn { color: var(--brand); }
#contactBookContainer .cbcCount,
#contactBookContainer .cbcCountSmall,
#contactBookContainer #cbConsultant #cbConsultantCount { background: var(--badge); }
/* presence dot (new; span injected by IndexSearch2 into the avatar figure) */
#contactBookContainer .cbPresence { position: absolute; top: 0; left: 0; width: 14px; height: 14px;
    border-radius: 50%; border: 2.5px solid #fff; box-sizing: border-box; z-index: 2; }
#contactBookContainer .cbPresence.online { background: #3FA76A; }
#contactBookContainer .cbPresence.away { background: #E28B2B; }
#contactBookContainer .cbPresence.off { background: #8A968F; }

/* ---- 1:1 + GROUP CHAT ---- */
#contactBookContainer #cbChatCommContain,
#contactBookContainer #cbChatCont { background: var(--cb-ground); }
#contactBookContainer .cbCMPMenu,
#contactBookContainer .cbCMPMenu a,
#contactBookContainer .cbCMPMenu i { color: var(--brand); }
#contactBookContainer .cbCMPMenu i:hover { color: var(--brand-strong); }
/* HCX-06: the Delete Contact trash is destructive -> resting red (S2T: red = destructive) */
#contactBookContainer .cbCMPMenu i.fa-trash-alt { color: #ed0000; }
#contactBookContainer .cbCMPMenu i.fa-trash-alt:hover { color: #b00020; }
/* chat wallpaper */
#contactBookContainer .cbcMsgList {
    color: var(--ink);
    background-color: var(--chat-ground);
    background-image: radial-gradient(circle at 12px 12px, rgba(74,138,104,0.10) 1.5px, transparent 1.6px);
    background-size: 34px 34px;
}
/* received bubble stays white; sent bubble (.cbcmContact) was solid blue -> light green */
#contactBookContainer .cbcmContact { background: var(--bubble-sent) !important; color: var(--ink) !important; box-shadow: 0 1px 2px rgba(20,60,40,0.16); }
#contactBookContainer .cbcmContact .cbcmDate,
#contactBookContainer .cbcmContact .cbcmActionMenu i,
#contactBookContainer .cbcmContact .cbcmView i,
#contactBookContainer .cbcmContact .cbcmMsg { color: var(--ink) !important; }
#contactBookContainer .cbcmMessage { background: #FFFFFF !important; border-color: #E1E9E4; color: var(--ink) !important; box-shadow: 0 1px 2px rgba(20,60,40,0.16); }
#contactBookContainer .cbcmPrev { background: #DCECE1; border-color: #BCD6C6; color: var(--ink); }
/* read-receipt double-tick -> green */
#contactBookContainer .cbcmView,
#contactBookContainer .cbcmView i { color: var(--tick); }
#contactBookContainer .cbcmView i:hover { color: var(--brand-strong); }
#contactBookContainer .fa-check-double { color: var(--tick); }
/* input row icons + circular send button */
#contactBookContainer .cbcmActions,
#contactBookContainer .cbcmActions i { color: var(--brand); }
#contactBookContainer .cbcmActions i:hover { color: var(--brand-strong); }
#contactBookContainer #btnSendChat { display: inline-block; width: 40px; height: 40px; line-height: 40px;
    border-radius: 50%; background: var(--brand); color: #fff; text-align: center; font-size: 18px;
    box-shadow: 0 2px 6px rgba(19,98,66,0.32); transition: background 0.15s linear; }
#contactBookContainer #btnSendChat:hover { background: var(--brand-strong); color: #fff; }
#contactBookContainer .cbcmBtn { color: var(--brand); }
#contactBookContainer .cbcmBtn:hover { border-color: var(--brand); }

/* ---- RECENT CHATS PANEL (message previews already render here) ---- */
#contactBookContainer #cbRecentChat { background: #cfe0d5; }
#contactBookContainer #cbrcMenu { background: var(--brand); }
/* HCX-20 (2026-07-18, owner "good"): centre the recent-chats tab glyph. Was
   margin-left:5px on a shrink-wrapped ~21px tab, so the icon sat flush-right
   and overflowed the tab's rounded corner. Fixed 26px width + flex-centre. */
#contactBookContainer #cbrcMenu { display: flex; flex-direction: column; align-items: center; width: 26px; padding-top: 12px; }
#contactBookContainer #cbrcMenu i { margin: 0; }
#contactBookContainer #cbrcCount { margin: 0 0 6px 0; }
#contactBookContainer #cbrcMenu:hover { background: var(--brand-strong); }
#contactBookContainer .rccCount,
#contactBookContainer #cbrcCount { background: var(--badge); }

/* ---- CONTACT DETAILS + DOCUMENTS + FOLDERS ---- */
#contactBookContainer #cbdBack,
#contactBookContainer #cbdDocMenu { color: var(--brand); }
#contactBookContainer #cbDetailFormContainer,
#contactBookContainer #cbagForm { background: #EAF0EC; }
#contactBookContainer .cbdLabel i,
#contactBookContainer .contDocType,
#contactBookContainer .contDocFrom,
#contactBookContainer .contDocDelete,
#contactBookContainer #cbDocMenuDrop li i,
#contactBookContainer .cbflIcon { color: var(--brand); }
#contactBookContainer #contProfileImg { border-color: var(--brand); }
#contactBookContainer #cbDataImgEdit { color: var(--brand); }
#contactBookContainer #cbFolderList li:hover,
#contactBookContainer #cbDocResults li:hover,
#contactBookContainer #cbDocMenuDrop li:hover { background: #e9f2ec; }
#contactBookContainer #cbagfUpload { background: var(--brand); }
#contactBookContainer #cbagfImage:hover #cbagfUpload { background: var(--brand-strong); }

/* ---- misc leftover blues ---- */
#contactBookContainer .cbMsgHead { background: var(--brand); }
#contactBookContainer .cbMsgContainer { border-color: var(--brand); }
#contactBookContainer .cbMsgTitle { color: var(--brand-strong); }
#contactBookContainer .iconBlue { color: var(--brand); }
#contactBookContainer .ccmMenu a { color: var(--brand); }


/* ============================================================================
   RESPONSIVE - mobile / narrow viewports (Track A slice 1 - owner: the set
   height & width must be fluid). Desktop keeps the floating panel unchanged;
   <=767px becomes a full-screen fluid app. !important is required to beat the
   inline width/height/top/left that mobileChatLayout() writes (its mobile
   branch is UA-gated, so DevTools emulation / narrow desktop never triggered
   it). dvh so the chat fills the real viewport under mobile browser chrome.
   ========================================================================== */
@media (max-width: 767px) {
    #contactBookContainer {
        top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
        width: 100vw !important; max-width: 100vw !important;
        height: 100vh !important; height: 100dvh !important;
        border-radius: 0 !important; box-shadow: none !important;
    }
    #contactBookContainer .smallestSize { min-width: 0 !important; width: 100% !important; }

    /* content host fills below the header */
    #contactBookContainer #cbContent,
    #contactBookContainer #cbContent.cbContentHeight,
    #contactBookContainer .cbContentHeight {
        height: calc(100vh - 41px) !important;
        height: calc(100dvh - 41px) !important;
        position: relative !important;
    }
    /* the absolute sub-views fill the content host */
    #contactBookContainer #cbContactsCont,
    #contactBookContainer #cbChatCont,
    #contactBookContainer #cbDetailsCont,
    #contactBookContainer #cbDocumentsCont,
    #contactBookContainer #cbAddGroupCont { width: 100% !important; height: 100% !important; }

    /* scroll regions -> viewport-relative so they fit AND keep scrolling */
    #contactBookContainer #indexResults,
    #contactBookContainer #cbDocResults { height: calc(100dvh - 96px) !important; }
    #contactBookContainer .cbHomeCont { height: calc(100dvh - 55px) !important; }
    #contactBookContainer #cbDetailFormContainer { height: calc(100dvh - 96px) !important; }
    #contactBookContainer #cbagForm { height: calc(100dvh - 96px) !important; }
    #contactBookContainer .cbcMsgList { height: calc(100dvh - 150px) !important; }

    /* recent-chat rail -> capped slide-in overlay, never forces horizontal scroll */
    #contactBookContainer #cbRecentChat {
        width: min(86vw, 340px) !important; height: 100dvh !important;
        top: 0 !important; border-radius: 0 !important;
    }
    #contactBookContainer .rccName,
    #contactBookContainer .rccMessage { width: min(60vw, 220px) !important; }

    /* give the search input room on small screens */
    #contactBookContainer #cbSearchFrom { width: 62%; }
}


/* ============================================================================
   ELEVATION SCALE (MASTER section 5) - one coherent depth system.
   Replaces the ad-hoc box-shadow recipes (panel 1px 4px 7px .30, three
   different dropdown shadows, message-list double-inset) and the muddy dark
   hover text-glows with a 4-step scale tied to how high each surface floats:
   bubble (shadow-1) < dropdown / secondary panel (shadow-2) < main panel
   (shadow-3); send button uses the MASTER FAB shadow. Higher = softer + larger
   spread + slightly more opacity, never a hard offset. Light source top-down
   (0 y-offset positive), so no x-offset anywhere.
   ========================================================================== */
#contactBookContainer {
    --shadow-1: 0 1px 3px rgba(0,0,0,0.08);
    --shadow-2: 0 2px 8px rgba(0,0,0,0.10);
    --shadow-3: 0 4px 16px rgba(0,0,0,0.12);
    --shadow-fab: 0 2px 6px rgba(0,0,0,0.12);
    box-shadow: var(--shadow-3) !important;          /* the main floating panel */
}

/* secondary floating panel */
#contactBookContainer #cbRecentChat { box-shadow: var(--shadow-2) !important; }

/* every dropdown / floating menu -> the SAME shadow-2 (was 3 different recipes) */
#contactBookContainer #cbFolderListCont,
#contactBookContainer #cbAppointListCont,
#contactBookContainer #cbDocMenuDrop,
#contactBookContainer .cbMenuDropList,
#contactBookContainer .ccmMenu { box-shadow: var(--shadow-2) !important; }

/* chat bubbles -> subtle, equal lift (both sides identical) */
#contactBookContainer .cbcmMessage,
#contactBookContainer .cbcmContact { box-shadow: var(--shadow-1) !important; }

/* send button FAB -> MASTER contact/chat FAB shadow (neutral, not the green-tinted heavy one) */
#contactBookContainer #btnSendChat { box-shadow: var(--shadow-fab) !important; }

/* chat-media round buttons: flat at rest, shadow-1 on hover (was a hard 1px 1px 3px .41) */
#contactBookContainer .cbcmBtn { box-shadow: none; }
#contactBookContainer .cbcmBtn:hover { box-shadow: var(--shadow-1) !important; }

/* message list: drop the heavy double-inset for the clean wallpaper look */
#contactBookContainer .cbcMsgList { box-shadow: none !important; }

/* remove the muddy dark hover text-glows everywhere (they are not elevation) */
#contactBookContainer :hover { text-shadow: none !important; }

/* keep the panel flat when it goes full-screen on mobile (re-assert after the scale) */
@media (max-width: 767px) {
    #contactBookContainer { box-shadow: none !important; }
    #contactBookContainer #cbRecentChat { box-shadow: var(--shadow-2) !important; }
}

/* ============================================================================
   CHAT WALLPAPER - real PWA texture (Track A, slice 2 - appended 2026-07-06)
   Replaces the slice-1 faux radial-gradient dot grid with the ACTUAL PWA chat
   background (chat-wallpaper.png, copied byte-identical from GrowthPoints
   /images/chat/chatBackgrountPattern.png). Applied exactly as the PWA renders
   it (.chat-messages-area): repeat + 400px tile over a #e8ede9 ground. This rule
   sits after the slice-1 .cbcMsgList rule so it overrides it (same selector,
   later position). Presentation-only; no id / JS / endpoint touched.
   Owner-approved: PWA-faithful lift (slice-1 shadows unchanged), S2T pale-green
   sent bubble unchanged.
   ========================================================================== */
#contactBookContainer .cbcMsgList {
    background-color: #e8ede9;
    background-image: url(chat-wallpaper.png);
    background-repeat: repeat;
    background-size: 400px;
}
/* ============================================================================
   CHAT BUBBLES - two distinct colours (Track A, slice 2 - appended 2026-07-06)
   Owner request: match the PWA two-tone (received = white, sent = green) from the
   GrowthPoints chat. Slice-1's attempt was (a) INVERTED and (b) DEAD:
   ContactBook.cs (~L1203/1242/1277) adds .cbcmContact only when MemberMsg==0 =
   the OTHER party = RECEIVED (read-tick + delete gate on MemberMsg==1 = SENT), so
   slice 1 greened the received bubble; and the later .cbcmMessage{#FFF!important}
   overrode it -> every bubble rendered white (no two-tone visible).
   Correct mapping: SENT = .cbcmMessage WITHOUT .cbcmContact; RECEIVED = .cbcmContact.
   Placed last + higher specificity so these win. Text/meta already dark from
   slice 1 -> readable on the light green. Presentation-only; no id/JS/endpoint touched.
   ========================================================================== */
#contactBookContainer .cbcmMessage:not(.cbcmContact) { background: #D9F7BE !important; }
#contactBookContainer .cbcmContact { background: #FFFFFF !important; }

/* ============================================================================
   RESPONSIVE CHAT + RECENT-CHATS ACCESS  (Track A, slice 3 - appended 2026-07-06)
   Owner-approved 2026-07-06:
   (1) Fluid chat across phones + the tablet band (<=991px) via a flex COLUMN
       so the message list fills whatever height is left and the input stays
       pinned - no magic-number heights. Replaces the slice-1 fixed
       ".cbcMsgList{height:calc(100dvh - 150px)}" guess and neutralises the
       UA-gated inline heights that mobileChatLayout() writes (this block is
       later in source with equal specificity + !important, so it wins).
   (2) A persistent recent-chats entry in the top nav rail (#cbRecentChatsNav),
       reachable from EVERY view including inside a chat, where the #cbRecentChat
       rail is sent to z-index:-1. On <=991 the rail becomes a right-side slide-in
       drawer (transform) with a tap-to-close backdrop; desktop keeps the proven
       toggleRecentChats() slide-out unchanged.
   Presentation only - no id/JS/endpoint contract touched. Appended byte-safe so
   the head BOM/CRLF/high bytes are preserved. Desktop (>991px) is untouched.
   ========================================================================== */

/* ---- nav-rail recent-chats button + unread badge (all viewports) ---- */
#contactBookContainer #cbRecentChatsNav { position: relative; }
#contactBookContainer #cbRecentChatsNav i { pointer-events: none; }
#contactBookContainer #cbRecentChatsNav .cbrcNavBadge {
    position: absolute; top: -3px; right: -5px;
    min-width: 16px; height: 16px; padding: 0 4px;
    border-radius: 8px; background: var(--badge); color: #fff;
    font-size: 11px; line-height: 16px; font-weight: 700;
    text-align: center; box-sizing: border-box; display: none;
}
#contactBookContainer #cbRecentChatsNav .cbrcNavBadge.on { display: block; }

/* ---- recent-chats slide-in drawer backdrop (<=991px only) ---- */
#contactBookContainer #cbrcBackdrop {
    position: absolute; inset: 0;
    background: rgba(0,0,0,0.35);
    opacity: 0; pointer-events: none;
    transition: opacity 300ms ease; z-index: 9; display: none;
}

@media (max-width: 991px) {
    /* full-screen the floating panel (extends the phone treatment to tablets) */
    #contactBookContainer:not(.cbShrunk) {
        top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
        width: 100vw !important; max-width: 100vw !important;
        height: 100vh !important; height: 100dvh !important;
        border-radius: 0 !important; box-shadow: none !important; overflow: hidden !important;
    }
    #contactBookContainer .smallestSize { min-width: 0 !important; width: 100% !important; }

    /* height chain -> flex fill (no inline-block gap, no dvh-calc drift) */
    #contactBookContainer form { height: 100% !important; }
    #contactBookContainer #contactBookInner {
        display: flex !important; flex-direction: column !important; height: 100% !important;
    }
    #contactBookContainer #contactBookContainerheader { flex: 0 0 auto !important; }
    #contactBookContainer #cbContent,
    #contactBookContainer #cbContent.cbContentHeight,
    #contactBookContainer .cbContentHeight {
        flex: 1 1 auto !important; min-height: 0 !important; height: auto !important;
        position: relative !important;
    }

    /* ---- CHAT = flex column: fixed header, flexing scroll list, pinned input ---- */
    #contactBookContainer #cbChatCont {
        display: flex !important; flex-direction: column !important;
        height: 100% !important;
    }
    #contactBookContainer #cbChatMenu { flex: 0 0 auto !important; }
    #contactBookContainer #cbChatCommContain {
        display: flex !important; flex-direction: column !important;
        flex: 1 1 auto !important; min-height: 0 !important; height: auto !important;
    }
    #contactBookContainer .cbcMsgList {
        flex: 1 1 auto !important; min-height: 0 !important;
        height: auto !important;   /* kills the inline JS height + the 150px calc guess */
    }
    #contactBookContainer .cbcmActionContain { flex: 0 0 auto !important; }

    /* other absolute sub-views still fill the content host */
    #contactBookContainer #cbContactsCont,
    #contactBookContainer #cbDetailsCont,
    #contactBookContainer #cbDocumentsCont,
    #contactBookContainer #cbAddGroupCont { width: 100% !important; height: 100% !important; }
    #contactBookContainer #indexResults,
    #contactBookContainer #cbDocResults { height: calc(100dvh - 96px) !important; }
    #contactBookContainer .cbHomeCont { height: calc(100dvh - 55px) !important; }
    #contactBookContainer #cbDetailFormContainer { height: calc(100dvh - 96px) !important; }
    #contactBookContainer #cbagForm { height: calc(100dvh - 96px) !important; }

    /* recent-chats rail -> right-side slide-in drawer (default: off-screen) */
    #contactBookContainer #cbRecentChat {
        top: 0 !important; right: 0 !important; left: auto !important;
        width: min(86vw, 340px) !important; height: 100dvh !important;
        border-radius: 0 !important;
        transform: translateX(100%) !important;
        transition: transform 300ms ease !important;
    }
    #contactBookContainer #cbRecentChat.cbrcOpen {
        transform: translateX(0) !important; z-index: 10 !important;
    }
    #contactBookContainer .rccName,
    #contactBookContainer .rccMessage { width: min(60vw, 220px) !important; }
    #contactBookContainer #cbrcBackdrop { display: block; }
    #contactBookContainer #cbrcBackdrop.on { opacity: 1; pointer-events: auto; }

    /* give the search input room on small screens */
    #contactBookContainer #cbSearchFrom { width: 62%; }

    /* keep the full-screen panel flat (re-assert after the elevation scale) */
    #contactBookContainer { box-shadow: none !important; }
    #contactBookContainer #cbRecentChat { box-shadow: var(--shadow-2) !important; }
}

/* ============================================================================
   SHRINK-TO-PANEL TOGGLE  (Track A, slice 4 - appended 2026-07-06)
   Owner request: on larger mobile / tablet devices the Contact Book is now
   full-screen; add a header button to SHRINK it to a compact phone-size panel
   so there is room around it to drag it to a side. Only tablets (768-991px)
   get the button - small phones stay full-screen, desktop (>991) is unchanged
   and keeps its own maxCBook + native drag. The full-screen rule is gated to
   :not(.cbShrunk) (done inline above) so the shrunk panel is free to size +
   be dragged (drag writes inline top/left, which now has nothing !important to
   fight). Touch-drag is added in ContactBook.js (main.js dragElement is
   mouse-only + shared). Presentation only. Appended byte-safe.
   ========================================================================== */
#contactBookContainer #cbShrinkToggle { display: none; }   /* hidden except on tablets */

@media (min-width: 768px) and (max-width: 991px) {
    /* show the shrink toggle; hide the inert desktop expand on tablets */
    #contactBookContainer #cbShrinkToggle { display: inline-block; }
    #contactBookContainer #cbMaxToggle { display: none; }

    /* shrunk = compact, draggable, phone-size floating panel */
    #contactBookContainer.cbShrunk {
        width: 360px !important; max-width: 92vw !important;
        height: 640px !important; max-height: 88dvh !important;
        right: auto !important; bottom: auto !important;
        border-radius: 0 !important; overflow: hidden !important;
        box-shadow: 0 14px 44px rgba(0,0,0,0.30) !important;
    }
    #contactBookContainer.cbShrunk #contactBookContainerheader { cursor: move; }
}

/* ============================================================================
   CB-SCROLL-1 -- Frega-green scrollbar: same style as the host (hub.css 8px
   thumb + light track), recoloured to the panel --brand greens so it fits the
   Track-A reskin. ID scope beats the brands unscoped ::-webkit-scrollbar bleed
   and paints the recent-chats drawer track (was green bg through a bare gutter).
   ========================================================================== */
#contactBookContainer,
#contactBookContainer * {
    scrollbar-width: thin;
    scrollbar-color: var(--brand, #4A8A68) #e2efe8;
}
#contactBookContainer ::-webkit-scrollbar,
#contactBookContainer::-webkit-scrollbar { width: 8px; height: 8px; }
#contactBookContainer ::-webkit-scrollbar:hover,
#contactBookContainer::-webkit-scrollbar:hover { width: 12px; height: 12px; }
#contactBookContainer ::-webkit-scrollbar-thumb,
#contactBookContainer::-webkit-scrollbar-thumb {
    background: var(--brand, #4A8A68);
    border-radius: 8px;
}
#contactBookContainer ::-webkit-scrollbar-thumb:hover,
#contactBookContainer::-webkit-scrollbar-thumb:hover { background: var(--brand-light, #86AF99); }
#contactBookContainer ::-webkit-scrollbar-track,
#contactBookContainer::-webkit-scrollbar-track {
    background: #e2efe8;
    border-radius: 8px;
    box-shadow: inset 7px 10px 12px #eef6f1;
    border-left: 1px solid #cfdcd4;
}

/* ============================================================================
   CB-RSK-2a -- PWA-style bubble alignment tidy (minimal; wide cards kept).
   Slice 2 did colours only; the legacy layout leaned SENT-left / RECEIVED-right
   (inverted from the GrowthPoints PWA + WhatsApp). Fix: swap the auto-margin so
   SENT (.cbcmMessage:not(.cbcmContact)) hugs RIGHT and RECEIVED (.cbcmContact)
   hugs LEFT -- legacy tails (sent top-right / received top-left) + avatar sides
   are already correct, only the horizontal position was flipped. Pull the
   hanging avatars in so they don't overflow the panel edge after the flip
   (verified 6-8px inside at 320px panel + 390px full-screen). Hide the dead
   .memPostChat chat-dots button (no onclick / no data-member in chat context;
   inherited from the feed's message-member button -> pure clutter here).
   ID+list scoped -> no bleed to the feed's functional .memPostChat.
   ========================================================================== */
#contactBookContainer .cbcMsgList .cbcmMessage:not(.cbcmContact) { margin-left: auto !important; margin-right: 0 !important; }
#contactBookContainer .cbcMsgList .cbcmContact { margin-left: 0 !important; margin-right: auto !important; }
#contactBookContainer .cbcMsgList .cbcmMessage:not(.cbcmContact) .cbcmProfile { right: -18px !important; }
#contactBookContainer .cbcMsgList .cbcmContact .cbcmProfile { margin-left: -20px !important; }
#contactBookContainer .cbcMsgList .cbcmMessage .memPostChat { display: none !important; }

/* CB-RSK-2a follow-up (owner QA): after the right/left flip the pulled-in avatar
   overlapped the sent read-tick + the received date -> nudge each clear of it. */
#contactBookContainer .cbcMsgList .cbcmMessage:not(.cbcmContact) .cbcmView { margin-right: 44px !important; }
#contactBookContainer .cbcMsgList .cbcmContact .cbcmDate { margin-left: 40px !important; }

/* CB-RSK-2a-ii (owner QA 2026-07-20): the sent bubble's hanging avatar (right:-18px)
   was overlapping the 15px overflow-y scroll gutter and getting clipped ~7px on the
   right. Shift the whole sent bubble (+ its absolute avatar + tick, in lockstep) left
   clear of the gutter -- keeps the read-tick clearance the -18px hang was tuned for. */
#contactBookContainer .cbcMsgList .cbcmMessage:not(.cbcmContact) { margin-right: 14px !important; }

/* ==========================================================================
   CB-RSK-2b -- group-chat sender name (PWA-style label). .cbcmFrom renders
   ONLY on received group messages (ContactBook.cs:1364, MemberMsg==0) and had
   zero CSS anywhere -> bare inherited 15px block. Small semibold deep-green
   label above the message text, on the white received bubble. It is a plain
   block after the floated avatar, so its line-box wraps clear of the avatar
   naturally (no margin-left nudge, unlike the inline-block .cbcmDate).
   ========================================================================== */
#contactBookContainer .cbcMsgList .cbcmFrom {
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--brand-strong);
    margin: 0 0 3px 0;
    letter-spacing: 0.01em;
}

/* ==========================================================================
   CB-RSK-2c -- Documents surface retint + polish (owner: minimal tidy, CSS-
   only, no markup change). The earlier de-blue slice retinted the doc ICONS
   green but left the row text off-brand: .cbdResultType (type header) and
   .docAddNoteBtn kept pale-blue #c1cedd text on their now-green fill;
   .contDocName2 was hardcoded seagreen/bolder; source/date had uncontrolled
   colour; the edit action used a fragile margin-left:139px. Fix contrast,
   tokenise to the Frega greens/ink, tidy the action icons. Rendered by
   ContactDocs2 (ContactBook.cs:709) into #indexDocList. #contactBookContainer-
   scoped overrides -> win over the unscoped legacy rules by specificity.
   ========================================================================== */
/* type-header + add-note button: white text on the green fill (was #c1cedd) */
#contactBookContainer .cbdResultType,
#contactBookContainer .docAddNoteBtn { color: #fff; }
/* doc name = primary content -> ink, medium weight (was hardcoded seagreen) */
#contactBookContainer .contDocName2 { color: var(--ink); font-weight: 600; }
/* source:email + date = secondary meta -> muted ink */
#contactBookContainer .contDocFrom2,
#contactBookContainer .contDocDate { color: var(--ink-muted); }
/* action icons: tokenised, flat hover, no legacy underline, consistent size;
   drop the magic margin-left:139px so the edit icon sits after the date */
#contactBookContainer .contDocAddBtn,
#contactBookContainer .contDocDelete { color: var(--brand); font-size: 15px; text-decoration: none; }
#contactBookContainer .contDocAddBtn:hover,
#contactBookContainer .contDocDelete:hover { color: var(--brand-strong); text-shadow: none; }
#contactBookContainer .contDocAddBtn { margin: 2px 0 2px 12px; }

/* CB-RSK-2b/2c follow-up (owner QA on live screenshots): (1) group sender
   name a touch bigger + aligned (left edge ~matches the received .cbcmDate
   40px nudge) and given a little vertical rhythm; (2) Documents long file
   names were clipped at the narrow-panel edge -> let the name WRAP within the
   row and break long underscored tokens instead of hard-clipping at the
   legacy .contDocName max-width:370px. */
#contactBookContainer .cbcMsgList .cbcmFrom { font-size: 13px; margin: 1px 0 4px 40px; }
#contactBookContainer .contDocName { max-width: calc(100% - 60px); }
#contactBookContainer .contDocName2 { white-space: normal; overflow-wrap: anywhere; word-break: break-word; line-height: 1.3; }

/* ==========================================================================
   CB-RSK-2a FIX (owner QA on live 1:1 chat: received bubbles too tall, message
   pushed to the bottom, big empty gap). Root cause: the RECEIVED avatar kept
   the base .cbcmContact .cbcmProfile { position:relative; float:left } so its
   64px added an in-flow column that inflated every received bubble's height --
   whereas the SENT avatar is position:absolute (no flow impact). Mirror the
   sent side so received is symmetric + compact: avatar absolute, hanging over
   the squared top-left corner (left:-18px == sent right:-18px), and let the
   always-empty received action menu collapse instead of reserving 18px.
   Improves both 1:1 and group received bubbles.
   ========================================================================== */
#contactBookContainer .cbcMsgList .cbcmContact .cbcmProfile {
    position: absolute !important;
    left: -18px !important;
    right: auto !important;
    top: -5px !important;
    margin-left: 0 !important;
    float: none !important;
}
#contactBookContainer .cbcMsgList .cbcmContact .cbcmActionMenu { height: auto !important; }

/* CB-RSK-2a FIX cont. (BROWSER-VERIFIED geometry, not guessed): the received
   avatar hangs left:-18px past the bubble, but the received bubble was flush
   against the list's left overflow:hidden edge (measured list-left x=401,
   avatar-left x=399 -> ~2px+ clipped, visibly cutting the circle). The SENT
   avatar clears because its bubble sits ~7px inside the panel on the right.
   Give the received bubble a 12px left gutter so its avatar lands ~10px INSIDE
   the panel edge (measured: avatar-left 399 -> 411), symmetric with sent.
   Verified live in the browser at the 320px floating panel (avatars fully
   visible); mobile full-width has more room so the gutter is strictly safe. */
#contactBookContainer .cbcMsgList .cbcmContact { margin-left: 12px !important; }

/* ============================================================================
   GALLERY surface reskin (CB-RSK-2d, appended 2026-07-07)
   Frega white-panel card treatment, consistent with the docs/chat slices.
   #contactBookContainer-scoped so it overrides the inline .contGalleryCont
   rules in gallery/Default.aspx by specificity. Token-first (--hair / --brand*
   / --ink-muted from the slice-1 foundation block above). The date + delete
   row is scoped under .contGalleryCont so the SHARED .contDoc* rules used by
   the documents surface stay untouched.
   ========================================================================== */
#contactBookContainer .contGalleryCont {
    border: 1px solid var(--hair);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(4, 77, 49, 0.07);
    background: #fff;
    transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease;
}
#contactBookContainer .contGalleryCont:hover {
    border-color: var(--brand-light);
    box-shadow: 0 4px 14px rgba(4, 77, 49, 0.14);
    transform: translateY(-2px);
}
#contactBookContainer .contGalleryItem {
    border-radius: 8px;
    overflow: hidden;
}
#contactBookContainer .contGalleryItem img {
    border-radius: 8px;
    display: block;
}

/* date + delete row -- gallery-scoped; leaves the shared docs .contDoc* alone */
#contactBookContainer .contGalleryCont .contDocDateDelete {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px solid var(--hair);
}
#contactBookContainer .contGalleryCont .contDocDate {
    float: none;
    margin: 0;
    font-size: 12px;
    color: var(--ink-muted);
    text-align: left;
}
#contactBookContainer .contGalleryCont .contDocDelete {
    float: none;
    margin: 0;
    font-size: 15px;
    line-height: 1;
    color: var(--brand);
    text-decoration: none;
}
#contactBookContainer .contGalleryCont .contDocDelete:hover {
    color: var(--brand-strong);
    text-shadow: none;
}

/* mobile: make the gallery scroll region fluid like docs/chat (slice 3-4) */
@media (max-width: 767px) {
    #contactBookContainer #cbGalleryResultsContainer {
        height: calc(100dvh - 96px) !important;
        width: 100% !important;
    }
}

/* ============================================================================
   CONTACT-DETAILS SURFACE reskin (Track A completion - appended 2026-07-07).
   Finishes the 3 fragments of the contact-details surface: the contact FORM
   (details/), the group builder (contactgroup/) and new-group (addcontactgroup/).
   Header bars + form ground + save button were already green from the earlier
   Track-A block; this section (a) gives the details form a clean Frega input
   treatment (MASTER §8 focus ring, --radius-input 10px) and (b) overrides the
   remaining LEGACY BLUE that lived in each fragment's inline <style> (the group
   search bar / drop toggle / user strip / add icon / image-hover overlay). Every
   override out-specifies the inline rule via the #contactBookContainer prefix
   -> ZERO fragment edits, presentation-only, no id / JS / endpoint touched.
   ========================================================================== */

/* ---- details form: clean Frega inputs (were raw Bootstrap-3) ---- */
#contactBookContainer #cbDetailMenu { border-bottom-color: #DCE7E0; }
#contactBookContainer #cbActionMember { background: var(--brand-subtle); border-bottom-color: #CBD8CF; }
#contactBookContainer .cbdLabel { color: var(--ink); }
#contactBookContainer .requiredField:before { color: var(--brand-strong); }
#contactBookContainer .cbdInput .form-control {
    border: 1px solid #CBD8CF;
    border-radius: 10px;                              /* MASTER --radius-input */
    background: #fff;
    color: var(--ink);
    box-shadow: none;
    transition: border-color .15s linear, box-shadow .15s linear;
}
#contactBookContainer .cbdInput .form-control:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(74,138,104,0.25);      /* MASTER §8 focus ring */
}
/* default-email radios + DOB calendar addon */
#contactBookContainer .defEmailChk { accent-color: var(--brand); }
#contactBookContainer .cbdInput .input-group-addon {
    background: var(--brand-subtle);
    border: 1px solid #CBD8CF;
    color: var(--brand);
}
#contactBookContainer .cbdInput .input-group-addon .glyphicon { color: var(--brand); }
/* keep the DOB input + calendar addon visually joined (radius only on outer edges) */
#contactBookContainer .cbdInput .input-group .form-control { border-top-right-radius: 0; border-bottom-right-radius: 0; }
#contactBookContainer .cbdInput .input-group-addon { border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* ---- group builder (contactgroup/): inline blues -> green ---- */
#contactBookContainer .cbagHUD { color: rgba(255,255,255,0.82); }   /* subtext on the green header */
#contactBookContainer #cbagUsers { background: var(--cb-ground); }
#contactBookContainer .cbagSearch { background: var(--cb-ground); }
#contactBookContainer .cbagSearch input[type=text] { border: 1px solid #CBD8CF; border-radius: 10px; }
#contactBookContainer .cbagSearch input[type=text]:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(74,138,104,0.25);
    background: #fff;
}
#contactBookContainer .cbagSearch i { color: var(--brand); }
#contactBookContainer #cbaguDrop { background: var(--brand-strong); border-color: var(--brand-strong); color: #fff; }
#contactBookContainer #cbaguDrop:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
#contactBookContainer .cbagulItmDetail { border-color: #CBD8CF; }
#contactBookContainer .cbgAdd { color: var(--brand); }
#contactBookContainer .cbgAdd:hover { color: var(--brand-strong); }
#contactBookContainer #cbaguResultDisp li:hover { background: #e9f2ec; }

/* ---- new-group (addcontactgroup/): image-hover overlay was blue ---- */
#contactBookContainer #cbagfImgedit { background: var(--brand-strong); }


/* ============================================================
   HUB + CHAT UX/UI TRIAGE  (HCX batch 1, 2026-07-16)
   Scoped to #contactBookContainer. Additive overrides only.
   ============================================================ */

/* HCX-07: exclusive active-state for the Contact Book top nav.
   cbActive was previously hard-coded on EVERY <li> and styled by nothing
   (no CSS rule, no JS toggle) -> the "active" indicator was meaningless.
   ContactBook.js now toggles cbActive to exactly the current view
   (Book = home, Contacts = the whole contact workflow). The nav sits on a
   --brand green bar, so the active item reads as an inverse (white) tab. */
#contactBookContainer #cbNav > li.cbActive,
#contactBookContainer #cbNav > li.cbActive:hover {
    background: #fff;
    color: var(--brand);
    border-color: #fff;
}
#contactBookContainer #cbNav > li.cbActive i,
#contactBookContainer #cbNav > li.cbActive span { color: var(--brand); }

/* HCX-09: long contact names ellipsize instead of hard-clipping (base
   .cbcName has width:64% but no overflow handling). A hover title is set in
   contacts/Default.aspx so the full name is still reachable. */
#contactBookContainer .cbcName {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

/* HCX-10: friendly, centred empty states for the documents / gallery / empty
   chat views (were blank or a bare top-left "No Results"). Injected by each
   fragment when its list payload is empty. */
#contactBookContainer .cbEmptyState {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    min-height: 170px;
    padding: 40px 24px;
    color: var(--ink-muted);
}
#contactBookContainer .cbEmptyState i { font-size: 42px; color: var(--brand-light); }
#contactBookContainer .cbEmptyState .cbEmptyTitle { font-size: 15px; font-weight: 600; color: var(--ink); }
#contactBookContainer .cbEmptyState .cbEmptySub { font-size: 13px; line-height: 1.45; max-width: 260px; margin: 0; }


/* HCX-08 (2026-07-16): the recent-chats strip (#cbrcMenu) stays -- it is a real
   recent-chats access point + unread indicator. Its #cbrcCount badge previously
   rendered "0" when there were no unread chats (getRecentChatList always html()s
   the number), reading as noise. Hide the count badge at zero, mirroring the
   nav-rail badge (.cbrcNavBadge .on toggled on rcCnt>0). Owner directive: keep
   the bar, fix only the "0". */
#contactBookContainer #cbrcCount { display: none; }
#contactBookContainer #cbrcCount.cbrcHasCount { display: block; }
