:root {
    /******************** Colors ********************/
    --bg-color: #1C2128;
    --theme-color: #22272E;
    --text-color: #f2f5fc;
    --active-color: #444C56;
    --gray: #68717c;
    --btn-cancel-color: #393E46;
    --light-gray: #DEDCDC;
    --dark-gray: #333a42;
    --active-gray: #e2e2e6;
    --green: #29BC9C;
    --dark-green: #26A88C;
    --red: #DB575A;
    --dark-red: #CB5153;
    /* Bootstrap colors */
    --bs-body-color: #f2f5fc;
    --bs-body-bg: #22272E;
    --bs-tertiary-bg: #333a42;
}

/******************** Base styles ********************/
html {
    scroll-behavior: smooth;
}

span,
p,
label,
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--text-color);
    padding: 0;
    margin: 0;
}

body {
    background-color: var(--bg-color);
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    position: relative;
    overflow-x: hidden;
    overflow-y: scroll;
    line-height: 1.5;
    font-weight: 400;
}

.bold {
    font-weight: 600;
}

.secondary-text {
    color: var(--gray);
    font-size: 15px;
}

/******************** Content ********************/
.content-container {
    background-color: var(--theme-color);
    padding: 20px;
    margin: 80px 20px 0 270px;
    height: fit-content;
    border-radius: 12px;
}

.content {
    margin: 15px 0 20px 0;
}

.error-list {
    list-style: disc;
    margin: 0;
}

@media (max-width: 768px) {
    .content-container {
        background-color: var(--theme-color);
        padding: 10px;
        margin: 0 10px !important;
    }

    .content {
        margin: 0;
    }
}

.title-wrapper {
    display: flex;
    align-items: center;
    margin-right: 15px;
}

.back-to-list-wrapper {
    margin: 5px;
}

.back-to-list {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    height: 40px;
    width: 40px;
    border-radius: 50%;
}

    .back-to-list:hover {
    background-color: var(--dark-gray);
    }

    .back-to-list:active {
    background-color: var(--active-color);
    }

.back-icon {
    width: 1rem;
    height: 1rem;
    margin: auto 0;
}

.row {
    margin-bottom: 1rem;
}

.line {
    margin: 0;
    padding: 0;
    color: var(--active-color);
}

textarea {
    height: 86px;
}

::placeholder {
    color: var(--light-gray) !important;
    opacity: 1; /* Firefox */
}

::-ms-input-placeholder { /* Edge 12 -18 */
    color: var(--light-gray) !important;
}

textarea,
input {
    color: var(--text-color);
    background-color: var(--bg-color);
}

.form-control {
    color: var(--text-color);
    background-color: var(--bg-color);
}

    .form-control:active, .form-control:focus {
        color: var(--text-color);
        background-color: var(--active-color);
    }

    /*********** Buttons ***********/
    .content-container .button-container {
        display: flex;
    }

.content-container .btn {
    border-radius: 40px;
    border: none;
    font-weight: 600;
    width: 100%;
    height: 2.4rem;
    width: 10rem;
    display: flex;
    text-align: center;
    align-items: center;
    justify-content: center;
}

.content-container .btn-save {
    background-color: var(--green);
    color: white;
}

    .content-container .btn-save:hover,
    .content-container .btn-save:focus {
        background-color: var(--dark-green);
        color: white;
    }

.content-container .btn-delete {
    background-color: var(--red);
    color: white;
}

    .content-container .btn-delete:hover,
    .content-container .btn-delete:focus {
        background-color: var(--dark-red);
        color: white;
    }


.content-container .btn-cancel {
    background-color: var(--btn-cancel-color);
    color: var(--text-color);
    margin-left: 5px;
}

    .content-container .btn-cancel:hover,
    .content-container .btn-cancel:focus {
        background-color: var(--active-color);
        color: var(--text-color);
    }

.content-container .btn-add {
    height: 2rem;
    width: 7rem;
}

/*********** list ***********/
.list-header {
    padding: 0 15px 16px 15px;
    display: flex;
}

    .list-header span {
        color: var(--gray);
    }

    .list-header .control-header {
        min-width: 120px;
    }

    .list-header .message-control-header {
        min-width: 75px;
    }

.list-title {
    display: flex;
    text-align: center;
    align-items: flex-end;
    justify-content: end;
}

.right-button-wrapper,
.view-wrapper .buttons-wrapper {
    margin-left: auto;
    margin-right: 0;
}

.parent-page-title {
    margin: 10px 15px;
}

.list-total {
    margin-left: 10px;
}

    .list-total span {
        color: darkgray;
    }

        .list-total span:first-child {
            margin-right: 5px;
        }

.add-icon {
    margin-right: 5px;
}

.add-text {
    color: white;
}

.list-item {
    padding: 25px 15px;
    display: flex;
    align-items: center;
}

    .list-item .row,
    .list-header .row {
        width: 100%;
        display: flex;
        margin-bottom: 0;
        margin-right: 0;
        align-items: center;
    }

    .list-item .buttons-wrapper {
        display: flex;
    }

.form-container {
    padding: 0 15px;
}

@media (max-width: 768px) {
    .form-container {
        padding: 10px;
    }

    .list-header {
        display: none;
    }

    .right-button-wrapper .add-text {
        display: none;
    }

    .content-container .btn-add {
        width: 2rem;
    }

    .add-icon {
        margin: 0;
    }

    .parent-page-title {
        margin: 10px;
    }

    .title-wrapper {
        margin-right: 10px;
    }

    .list-item {
        padding: 15px 10px;
        display: block;
    }

        .list-item .col-sm-12 {
            margin: 3px 0;
        }

    .buttons-wrapper {
        padding: 10px 0 0 0;
        width: fit-content;
        margin: 0 auto;
    }

    .back-to-list-wrapper {
        margin-left: 0px;
    }

    .view-wrapper .buttons-wrapper {
        padding: 0;
    }
}

.list-item:hover {
    box-shadow: 0 0px 5px var(--active-color);
    cursor: pointer;
}

.truncated {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 25ch;
}

/*********** list button ***********/
.list-button {
    padding: 9px;
    border-radius: 50%;
    background-color: var(--theme-color);
    box-shadow: 0 0 4px var(--active-color);
    text-decoration: none;
    text-align: center;
    display: inline-flex;
    margin-left: 15px;
}

.buttons-wrapper .list-button:first-child {
    margin-left: 0px;
}

.list-button:hover {
    background-color: var(--active-color);
}

.list-button-icon {
    width: 12px;
    height: 12px;
}

.view-item-wrapper {
    display: grid;
    margin-bottom: 1rem;
}

    .view-item-wrapper span {
        font-weight: 600;
        margin-bottom: 5px;
    }

.view-profile-photo {
    width: 10rem;
}

.edit-photo-wrapper {
    display: flex;
}

.photo-buttons-wrapper {
    margin: 0 0 0 1rem;
}

    .photo-buttons-wrapper .photo-btn {
        border: none;
        background-color: white;
        font-weight: 600;
        padding: 0;
    }

        .photo-buttons-wrapper .photo-btn.update-btn {
            color: var(--green);
            margin-right: 20px;
        }

            .photo-buttons-wrapper .photo-btn.update-btn:hover {
                color: var(--dark-green);
            }

        .photo-buttons-wrapper .photo-btn.remove-btn {
            color: var(--red);
        }

            .photo-buttons-wrapper .photo-btn.remove-btn:hover {
                color: var(--dark-red);
            }

@media (max-width: 426px) {

    .list-button,
    .buttons-wrapper .list-button:first-child {
        margin: 0 20px;
    }

    .view-wrapper .buttons-wrapper .list-button {
        margin: 0 5px;
    }

    .edit-photo-wrapper {
        display: block;
    }

    .view-profile-photo {
        width: 100%;
    }

    .photo-buttons-wrapper {
        margin: 1rem 0 0 0;
    }
}
