.r-flex-container{
    display: flex;
    flex-wrap: wrap;
}

.r-text-left{
    text-align: left;
}

.r-text-right{
    text-align: right;
}

.r-text-center{
    text-align: center;
}

.r-card{
    border-radius: 5px;
    border: solid thin #ddd;
    padding: .5rem 1rem;
    margin-bottom: .5rem;
    background-color: #fff;
}

/* -----------------------------*/
/* COLOURS */
/*------------------------------*/
    .r-text-primary{
        color: #0d6efd;
    }
    .r-text-secondary{
        color: #0d6efd;
    }
    .r-text-success{
        color: #198754;
    }
    .r-text-info{
        color: #0dcaf0;
    }
    .r-text-warning{
        color: #ffc107;
    }
    .r-text-danger{
        color: #dc3545;
    }
    .r-text-dark{
        color: #212529;
    }
    .r-text-light{
        color: #f8f9fa;
    }

    .r-bg-primary{
        background-color: #cce5ff;
        border-color: #b8daff;
    }
    .r-bg-secondary{
        background-color: #e2e3e5;
        border-color: #d6d8db;
    }
    .r-bg-success{
        background-color: #d4edda;
        border-color: #c3e6cb;
    }
    .r-bg-info{
        background-color: #d1ecf1;
        border-color: #bee5eb;;
    }
    .r-bg-warning{
        background-color: #fff3cd;
        border-color: #ffeeba;
    }
    .r-bg-danger{
        background-color: #f8d7da;
        border-color: #f5c6cb;
    }
    .r-bg-dark{
        background-color: #d6d8d9;;
        border-color: #c6c8ca;
    }
    .r-bg-light{
        background-color: #fefefe;
        border-color: #fdfdfe;
    }


/* -----------------------------*/
/* TABLES */
/*------------------------------*/

    .r-table-container{
        overflow-x: auto; /* Enables horizontal scrolling */
        width: 100%; /* Full width of the parent */
        max-width: 100%; /* Prevents overflow of the container */
    }


    .r-table-container table{
        width: 100%; /* Full width of the container */
        border-collapse: collapse; /* Merges table borders */
    }

    .r-table-container th, .r-table-container td {
        border: 1px solid #ddd; /* Table border */
        padding: 4px 8px; /* Cell padding */
    }

    .r-table-container th {
        background-color: #ddd; /* Header background color */
    }

    .r-table-container tr:nth-child(even) {
        background-color: #f2f2f2;
    }

/* -----------------------------*/
/* BUTTONS */
/*------------------------------*/
    .r-btn {
        display: inline-block;
        background-color: transparent;
        font-weight: 400;
        text-align: center;
        vertical-align: middle;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        border: 1px solid #999;
        padding: 0.375rem 0.75rem;
        font-size: 1rem;
        line-height: 1.5;
        border-radius: 0.25rem;
        transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
        text-decoration: none;
    }

    .r-btn:hover {
        color: #fff;
        background-color: #777; /* Darker shade on hover */
        cursor: pointer;
    }

    .r-btn-primary {
        color: #fff !important;
        background-color: #007bff !important;
        border-color: #007bff !important;
    }

    .r-btn-primary:hover {
        background-color: #0069d9 !important;
        border-color: #0062cc !important;
    }

    .r-btn-primary-outline {
        color: #007bff !important;
        background-color: #fff !important;
        border-color: #007bff !important;
    }

    .r-btn-primary-outline:hover {
        color: #fff !important;
        background-color: #0069d9 !important;
        border-color: #0062cc !important;
    }

    .r-btn-secondary {
        color: #fff !important;
        background-color: #6c757d !important;
        border-color: #6c757d !important;
    }

    .r-btn-secondary:hover {
        background-color: #5a6268 !important;
        border-color: #545b62 !important;
    }

    .r-btn-danger {
        color: #fff !important;
        background-color: #dc3545 !important;
        border-color: #dc3545 !important;
    }

    .r-btn-danger:hover {
        background-color: #c82333 !important;
        border-color: #bd2130 !important;
    }

/* -----------------------------*/
/* FORMS */
/*------------------------------*/
    .r-input-group {
        display: flex; /* Use flexbox for layout */
        align-items: center; /* Center items vertically */
        margin: 0px 20px; /* Margin around the input group */
    }
    input.r-input, select.r-input {
        padding: 6px 12px; /* Padding */
        border: 1px solid #dee2e6; /* Border color */
        border-radius: 5px; /* Rounded corners */
        flex: 1; /* Allow input to grow and fill space */
        margin-right: 0; /* Remove right margin */
        line-height: 1.5;
        height: 40px;
        font-size: 16px;
        width: 100%;
    }
    select.r-input {
        background-color: white;
    }

    input.r-input-checkbox {
        padding: 6px 12px; /* Padding */
        margin-right: 0; /* Remove right margin */
        height: 20px;
        width: 100%;

    }

    textarea.r-input{
        width: 100%;
        padding: 12px;
        border: 2px solid #ccc;
        border-radius: 4px;
        font-family: inherit;
        transition: border-color 0.3s ease;
    }

    textarea.r-input:focus {
        /* border-color: hsl(220, 90%, 60%); */
        box-shadow: 0 0 0 3px hsla(220, 90%, 60%, 0.2);
        outline: none;
    }


    .r-input-group-item-left{
        border-top-right-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    .r-input-group-item-right{
        border-top-left-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        border-left: none;
    }

    .r-input-group-btn{
        border: 1px solid #666; /* Border color */
        background-color: transparent;
        padding: 6px 12px; /* Padding */
        height: 40px;
    }
    .r-input-group-btn:hover{
        background-color: #ddd;
    }

    label.r-input-group-btn{
        height: 25px;
        /* padding-top: 12px;
        padding-bottom: 12px; */
    }
