.cc-wrapper {
    padding: 1rem 0;
}

.cc-layout {
    display: flex;
    gap: 1.5rem;
}

.cc-left {
    width: 180px;
    flex-shrink: 0;
    text-align: center;
}

.cc-id {
    font-size: .8rem;
    color: #464646;
    font-weight: 700;
    margin-top: .5rem;
}

.cc-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: #27282A;
    margin-top: .15rem;
    line-height: 1.25;
}


.cc-id-link {
    font-size: .95rem;
    font-weight: 700;
    color: #464646;
    text-decoration: underline;
}

.cc-id-link:hover {
    color: #00A1BE;
}

.cc-id-icon {
    color: #FF4A11;
    text-decoration: none;
    margin-left: .4rem;
}

.cc-id-icon:hover {
    color: #E0400E;
}

.cc-email {
    font-size: .8rem;
    color: #6C757D;
    text-decoration: none;
    word-break: break-all;
}

.cc-email:hover {
    color: #00A1BE;
}


.cc-demographics {
    font-size: .75rem;
    color: #6C757D;
}

.cc-demographics i {
    color: #6C757D;
}

.cc-type-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    background-color: #E0F5F9;
    color: #00A1BE;
    font-size: .75rem;
    font-weight: 600;
    padding: .25rem .65rem;
    border-radius: 50rem;
}

.cc-role-badge {
    display: inline-flex;
    align-items: center;
    background-color: #00CC78;
    color: #fff;
    font-size: .7rem;
    font-weight: 600;
    padding: .2rem .55rem;
    border-radius: 50rem;
}

.cc-restriction-badge {
    display: inline-flex;
    align-items: center;
    background-color: #FDE8F0;
    color: #D8237C;
    font-size: .7rem;
    font-weight: 600;
    padding: .2rem .55rem;
    border-radius: 50rem;
}

.cc-field-label {
    font-size: .75rem;
    font-weight: 700;
    color: #6C757D;
    margin-bottom: .1rem;
}

.cc-field-value {
    font-size: .85rem;
    color: #27282A;
}

.cc-segment {
    border-left: 2px solid #00A1BE;
    padding-left: .5rem;
}

/* ─── Stacked layout: name + email span full card width above the body ─── */
.cc-stacked .cc-header-band {
    border-bottom: 1px solid #E9ECEF;
    padding-bottom: .65rem;
    margin-bottom: 1rem;
}

.cc-name-large {
    font-size: 1.35rem;
    font-weight: 700;
    color: #27282A;
    line-height: 1.2;
}

.cc-email-large {
    display: inline-block;
    font-size: .9rem;
    color: #6C757D;
    text-decoration: none;
    margin-top: .15rem;
    word-break: break-all;
}

.cc-email-large:hover {
    color: #00A1BE;
}

/* ─── Photo upload (opt-in via EnablePhotoUpload) ─── */
.cc-photo-uploader {
    position: relative;
    cursor: pointer;
    display: block;
    margin-bottom: 0;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.cc-photo-uploader:hover {
    border-color: #00A1BE;
    box-shadow: 0 0 0 3px rgba(0, 161, 190, .15);
}

.cc-photo-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    background: rgba(39, 40, 42, .55);
    color: #fff;
    opacity: 0;
    transition: opacity .15s ease;
    pointer-events: none;
}

.cc-photo-uploader:hover .cc-photo-overlay,
.cc-photo-uploader:focus-within .cc-photo-overlay {
    opacity: 1;
}

.cc-photo-overlay-text {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.cc-photo-remove-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: .5rem;
    background: transparent;
    border: none;
    color: #FF4A11;
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
}

.cc-photo-remove-link:hover {
    color: #D8237C;
    text-decoration: underline;
}

.cc-photo-remove-link:disabled {
    opacity: .55;
    cursor: not-allowed;
}

/* ─── Mobile: stack vertically ─── */
@media (max-width: 767.98px) {
    .cc-layout {
        flex-direction: column;
        gap: 1rem;
    }

    .cc-left {
        width: 100%;
    }
}
