﻿/* Header Row */
.haven-header-row {
    display: flex;
    padding: 48px 32px 0 0;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
}

    .haven-header-row .haven-header-description {
        font-size: var(--Font-Size-Body-small, 14px);
        font-style: normal;
        font-weight: 400;
        line-height: var(--Line-Height-Body-small, 21px); /* 150% */
        letter-spacing: 0.28px;
    }

.haven-header-action-bar {
    display: flex;
    align-items: center;
    gap: 8px;
}

    .haven-header-action-bar > i {
        display: flex;
        min-width: 40px;
        min-height: 40px;
        padding: 8px 12px;
        justify-content: center;
        align-items: center;
        gap: 8px;
    }

/*Navigation Crumbs*/
.haven-nav-crumbs {
    margin-top: 16px;
    margin-right: 32px;
    display: flex;
    height: 40px;
    border-bottom: 1px solid var(--Color-Foreground10, rgba(255, 255, 255, 0.10));
}

    .haven-nav-crumbs .nav-item .nav-link {
        color: var(--Color-color-neutral-700);
        min-height: 40px;
        padding: 12px 32px;
        border-radius: 0;
        border: none;
        box-shadow: none;
        background-color: transparent;
    }

        .haven-nav-crumbs .nav-item .nav-link.active {
            color: var(--Color-color-teal-900);
            border-bottom: 2px solid var(--Color-color-teal-900, #C0F9E0);
        }

/* Content Row */
.haven-content-row {
    display: flex;
    padding: 32px 32px 80px 0;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 24px;
    align-self: stretch;
}

.haven-sectioned-content-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
    flex: 1 0 0;
}

    .haven-sectioned-content-row .haven-sectioned-content-row-title {
        display: flex;
        flex-direction: row;
        align-items: center;
        padding: 0px;
        gap: 16px;
    }

    .haven-sectioned-content-row .haven-sectioned-content-row-content {
        display: flex;
        width: 100%;
        flex-direction: row;
        align-items: flex-start;
        gap: 12px;
        align-self: stretch;
    }

/* Breadcrumbs */
nav:has(> .breadcrumb) {
    height: 24px;
}

.breadcrumb {
    --bs-breadcrumb-item-active-color: var(--Color-color-neutral-700);
    --bs-breadcrumb-divider-color: var(--Color-color-neutral-700);
}

    .breadcrumb .breadcrumb-item a {
        color: var(--Color-color-teal-900);
        /* Body/Regular/Base */
        font-style: normal;
        font-weight: 400;
        letter-spacing: 0.32px;
        text-decoration: none;
    }

/*Badges*/
.badge.haven-badge {
    border-radius: 6px;
    padding: 4px 8px;
    background: var(--Color-Surface, #1A0E2C) !important;
    color: var(--Color-color-neutral-800, #D2C7DE);
    /* Label/Light/X-Small */
    font-size: var(--Font-Size-Label-x-small, 12px);
    font-style: normal;
    font-weight: 300;
    line-height: var(--Line-Height-Label-x-small, 14px);
}

.badge.haven-badge-secondary {
    border-radius: 6px;
    padding: 4px 8px;
    background: var(--Color-color-purple-600) !important;
    color: var(--Color-Surface) !important;
    /* Label/Light/X-Small */
    font-size: var(--Font-Size-Label-x-small, 12px);
    font-style: normal;
    font-weight: 300;
    line-height: var(--Line-Height-Label-x-small, 14px);
}

/*Buttons*/
.btn {
    height: 40px;
    padding: 8px 16px;
    align-items: center;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.32);
    box-shadow: 0 16px 24px 0 rgba(255, 255, 255, 0.24) inset;

    /* Label/Medium/Base */
    font-size: var(--Font-Size-Label-base, 16px);
    font-style: normal;
    font-weight: 500;
    line-height: var(--Line-Height-Label-base, 18px); /* 112.5% */

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
}

    .btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
        box-shadow: none;
    }

    .btn:disabled {
        background: var(--Color-Foreground40);
        color: var(--Color-Surface);
        border: none;
    }

.btn-primary {
    background: var(--Color-color-teal-900, #C0F9E0);
    color: var(--Color-color-purple-200, #330084);
}

    .btn-primary:hover, .btn-primary:focus {
        background: var(--Color-color-teal-900, #C0F9E0);
        color: var(--Color-color-purple-200, #330084);
        border: 1.5px solid var(--Color-Foreground70);
        box-shadow: 0 0 12px 0 rgba(192, 249, 224, 0.50), 0 16px 24px 0 rgba(255, 255, 255, 0.54) inset;
        overflow: visible;
    }

.btn-primary-outlined {
    border: 1px solid var(--Color-color-teal-900, #C0F9E0);
    background: none;
    color: var(--Color-color-teal-900, #C0F9E0);
    box-shadow: none;
}

    .btn-primary-outlined:hover, .btn-primary-outlined:focus {
        color: var(--Color-color-teal-900, #C0F9E0);
        overflow: visible;
        border: 1.5px solid var(--Color-color-teal-900, #C0F9E0);
        background: linear-gradient(180deg, rgba(192, 249, 224, 0.16) 0%, rgba(192, 249, 224, 0.00) 100%);
    }

.btn-secondary {
    background: var(--Color-color-purple-400);
    color: var(--Color-Foreground);
    border: 1px solid var(--Color-Foreground10);
}

    .btn-secondary:hover, .btn-secondary:focus {
        border: 1.5px solid var(--Color-Foreground20, rgba(255, 255, 255, 0.20));
        background: var(--Color-color-purple-400);
        box-shadow: 0 16px 24px 0 rgba(255, 255, 255, 0.24) inset;
        color: var(--Color-Foreground);
        overflow: visible;
    }

.btn-secondary-outlined {
    border: 1px solid var(--Color-color-purple-800);
    background: none;
    color: var(--Color-color-purple-800);
    box-shadow: none;
}

    .btn-secondary-outlined:hover, .btn-primary-outlined:focus {
        color: var(--Color-color-purple-800);
        overflow: visible;
        border: 1.5px solid var(--Color-color-purple-800);
        background: linear-gradient(180deg, rgba(211, 214, 244, 0.16) 0%, rgba(211, 214, 244, 0) 100%);
    }


a, .btn-link {
    color: var(--Color-color-teal-900, #C0F9E0);
    font-size: var(--Font-Size-Label-small, 14px);
    font-style: normal;
    font-weight: 500;
    line-height: var(--Line-Height-Label-small, 16px);
    text-decoration: none;
}

/*Forms*/
.form-floating > label, .form-floating > .form-label {
    color: var(--Color-color-neutral-500, #B8ABCA);
    font-size: var(--Font-Size-Body-small, 14px);
    font-style: normal;
    font-weight: 400;
    line-height: var(--Line-Height-Body-small, 21px); /* 150% */
    letter-spacing: 0.28px;
}

.form-control:-webkit-autofill,
.form-control:-webkit-autofill:hover,
.form-control:-webkit-autofill:focus,
.form-control:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 999px var(--Color-Surface, #1A0E2C) inset !important;
    box-shadow: 0 0 0 999px var(--Color-Surface, #1A0E2C) inset !important;
    -webkit-text-fill-color: var(--Color-text-primary, #ffffff) !important;
}

.form-floating > .form-control, .form-floating > select {
    display: flex;
    height: 56px;
    min-height: 56px;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    align-self: stretch;
    border-radius: 8px;
    border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    background-color: var(--Color-Surface, #1A0E2C) !important;
    color: var(--Color-color-neutral-900, #EAE3F1);
    /* Body/Regular/Base */
    font-size: var(--Font-Size-Label-small, 14px);
    font-style: normal;
    font-weight: 500;
    line-height: var(--Line-Height-Label-small, 16px);
}

    .form-floating > .form-control:focus, .form-floating > select:focus,
    .form-floating > .form-control:focus, .form-floating > select:focus-visible {
        box-shadow: 0 0 0 2px var(--Color-color-neutral-100, #3B2C52);
        border: 1px solid var(--Color-color-neutral-200, #4C3C66);
        outline: none;
    }

    .form-floating > .form-control:disabled, .form-floating > select:disabled, select:disabled {
        display: flex;
        align-items: center;
        gap: 0;
        flex-shrink: 0;
        align-self: stretch;
        border-radius: 8px;
        border: 1px solid var(--Color-color-neutral-200, #4C3C66) !important;
        background-color: var(--Color-color-neutral-200, #1A0E2C) !important;
        color: var(--Color-color-neutral-900, #EAE3F1);
        /* Body/Regular/Base */
        font-size: var(--Font-Size-Label-small, 14px);
        font-style: normal;
        font-weight: 500;
        line-height: var(--Line-Height-Label-small, 16px);
    }

.form-label {
    color: var(--Color-color-neutral-600, #A192B5);
    /* Body/Regular/Base */
    font-size: var(--Font-Size-Body-base, 16px);
    font-style: normal;
    font-weight: 400;
    line-height: 28px;
    letter-spacing: 0.32px;
}


    .form-label:has(input:checked) {
        color: var(--Color-color-neutral-900, #A192B5);
    }


.form-check-input {
    padding: 3px;
    margin-right: 5px;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    border: 1px solid var(--Color-color-neutral-400, #70608E) !important;
    background: var(--Color-Surface, #1A0E2C);
    box-shadow: none !important;
}

    .form-check-input:checked {
        background: var(--Color-color-teal-500, #02806F);
        border: none !important;
    }

/*Spinner*/
.haven-page-spinner {
    text-align: center;
    width: 100%;
    padding-top: calc(100vh / 4);
    color: var(--Color-color-neutral-200);
}

/*Alerts*/
.alert {
    border-radius: 6px;
    /* Body/Regular/Base */
    font-size: var(--Font-Size-Body-base, 16px);
    font-style: normal;
    font-weight: 400;
    line-height: var(--Line-Height-Body-base, 24px); /* 150% */
    letter-spacing: 0.32px;
    margin-top: 32px;
}

    .alert.alert-danger {
        border: 1px solid var(--Color-status-danger-200, #3F1516);
        background: var(--Color-status-danger-50, #1C0A0A);
        color: var(--Color-status-danger-900, #F7CBDC);
    }

    .alert.alert-warning {
        border: 1px solid var(--Color-status-warning-200, #4D3F08);
        background: var(--Color-status-warning-50, #2A2304);
        color: var(--Color-status-warning-900, #F7CBDC);
    }

/*Card basics*/
.card {
    border-radius: 12px;
    border: 1px solid var(--Color-Foreground20, rgba(255, 255, 255, 0.20));
    background: var(--Color-Foreground5, rgba(255, 255, 255, 0.05));
    box-shadow: 0 16px 24px 0 var(--Color-Foreground5, rgba(255, 255, 255, 0.05)) inset;
    color: var(--Color-Foreground);
    cursor: pointer;
}

    .card:hover {
        background: var(--Color-Foreground10);
    }

.card-body {
    display: flex;
    padding: 24px;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    align-self: stretch;
}

.haven-card-alt {
    border: 1px solid var(--Color-Foreground20, rgba(255, 255, 255, 0.20));
    background: var(--Color-Surface10) !important;
    box-shadow: 0 16px 24px 0 var(--Color-Foreground5, rgba(255, 255, 255, 0.05)) inset;
}

.haven-card-header {
    display: flex;
    align-items: flex-start;
    gap: 2px;
    align-self: stretch;
    width: 100%;
}

.haven-card-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1 0 0;
}

    .haven-card-title h4 {
        color: var(--Color-color-neutral-900, #EAE3F1);
        /* Headings/H4 */
        font-family: var(--font-body, Archivo);
        font-size: var(--Font-Size-Headings-h4, 24px);
        font-style: normal;
        font-weight: 600;
        line-height: var(--Line-Height-Headings-h4, 28.8px);
    }

.haven-card-badges {
    display: flex;
    padding-top: 4px;
    gap: 4px;
    align-items: center;
}

    .haven-card-title h5 {
        color: var(--Color-color-neutral-900, #EAE3F1);
        /* Headings/H4 */
        font-family: var(--font-body, Archivo);
        font-size: var(--Font-Size-Headings-h5);
        font-style: normal;
        font-weight: 400;
        line-height: var(--Line-Height-Headings-h5);
    }



.haven-card-content {
    font-size: var(--Font-Size-Body-small, 14px);
    font-style: normal;
    font-weight: 400;
    line-height: var(--Line-Height-Body-small, 21px); /* 150% */
    letter-spacing: 0.28px;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Number of lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
    height: 42px;
}

.card-footer {
    display: flex;
    padding: 12px 24px;
    flex-direction: row;
    align-items: flex-start;
    gap: 4px;
    align-self: stretch;
    border-top: 1px solid var(--Color-Foreground5, rgba(255, 255, 255, 0.05));
    background: var(--Color-Foreground5, rgba(255, 255, 255, 0.05));
    color: var(--Color-color-neutral-900, #EAE3F1);
    /* Body/Regular/X-Small */
    font-size: var(--Font-Size-Body-x-small, 12px);
    font-style: normal;
    font-weight: 400;
    line-height: var(--Line-Height-Body-x-small, 18px); /* 150% */
    letter-spacing: 0.24px;
}

/*PRODUCT MAIN SHARED*/
.haven-header-row.haven-product-header-row {
    padding: 32px 64px 0 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    align-self: stretch;
}

.haven-content-row.haven-product-content-row {
    padding-top: 0;
}

.haven-header-product-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    width: 100%; /* Ensure full width */
}

.heaven-header-side-elements {
    display: flex;
    align-items: center;
    gap: 8px;
}

.heaven-header-side-elements > button, .heaven-header-side-elements .dropdown > button {
    border: none;
    background: none;
    box-shadow: none;
    color: var(--Color-Foreground);
    font-size: var(--Font-Size-Label-small, 14px);
    font-style: normal;
    font-weight: 500;
    line-height: var(--Line-Height-Label-small, 16px);
}

    .heaven-header-side-elements .dropdown > button::after {
        display: none;
    }

    .heaven-header-side-elements > button > i {
        height: 16px;
        width: 16px;
        padding-right: 6px;
    }


.haven-header-main {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    flex: 1;
}

.haven-header-button-bar {
    display: flex;
    height: 40px;
    border-bottom: 1px solid var(--Color-Foreground10, rgba(255, 255, 255, 0.10));
}

    .haven-header-button-bar .btn {
        color: var(--Color-color-neutral-700);
        min-height: 40px;
        padding: 12px 32px;
        border-radius: 0;
        border: none;
        box-shadow: none;
    }

         .haven-header-button-bar .btn.button-bar-active {
            color: var(--Color-color-teal-900);
            border-bottom: 2px solid var(--Color-color-teal-900, #C0F9E0);
        }

/*scrollbar*/
/* width */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

/* Track */
::-webkit-scrollbar-track {
    background: var(--Color-Foreground10);
    width: 8px;
    border-radius: 12px;
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: var(--Color-color-neutral-800);
    border-radius: 12px;
}

    /* Handle on hover */
    ::-webkit-scrollbar-thumb:hover {
        background: var(--Color-color-neutral-900);
    }

input[type="search"].form-control, input[type="search"].form-control:focus {
    height: 32px;
    background-color: var(--Color-color-neutral-50);
    border: 1px solid var(--Color-color-neutral-200);
    color: var(--Color-color-neutral-600);
    padding-left: 32px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath fill='%23ffffff' d='M480 272C480 317.9 465.1 360.3 440 394.7L566.6 521.4C579.1 533.9 579.1 554.2 566.6 566.7C554.1 579.2 533.8 579.2 521.3 566.7L394.7 440C360.3 465.1 317.9 480 272 480C157.1 480 64 386.9 64 272C64 157.1 157.1 64 272 64C386.9 64 480 157.1 480 272zM272 416C351.5 416 416 351.5 416 272C416 192.5 351.5 128 272 128C192.5 128 128 192.5 128 272C128 351.5 192.5 416 272 416z'/%3E%3C/svg%3E");
    background-size: 12px;
    background-repeat: no-repeat;
    background-position: 10px center;
}

    input[type="search"].form-control::placeholder, input[type="search"].form-control:focus::placeholder {
        color: var(--Color-color-neutral-600);
    }

    input[type="search"].form-control:hover::-webkit-search-cancel-button, input[type="search"].form-control:focus::-webkit-search-cancel-button {
        -webkit-appearance: none; /* remove native glyph */
        height: 1em;
        width: 1em;
        cursor: pointer;
        opacity: .9; /* adjust to taste */
        background: url("data:image/svg+xml;utf8,\
        <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'>\
          <path d='M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7A1 1 0 0 0 5.7 7.1L10.6 12l-4.9 4.9a1 1 0 1 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z'/>\
        </svg>") center/100% 100% no-repeat;
        /* Optional tweak to align with input padding */
        margin-right: 4px;
    }

.haven-string-highlighter {
    color: var(--Color-color-teal-900);
}


/*Notification bubble*/
.haven-notification-bubble {
    /* Badge */
    /* Auto layout */
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    /*padding: 4px 8px;*/
    width: 8px;
    height: 8px;
    background: #7BE1C7;
    border-radius: 6px;
    cursor: help;
}

.haven-notification-badge {
    margin-left: auto;
    color: var(--Color-color-teal-800);
    height: 18px;
    font-style: normal;
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0.02em;
    display: flex;
    gap: 4px;
}

    .haven-notification-badge > svg {
        margin-top: 2px;
    }

.warning-dot {
    color: var(--Color-status-warning-400);
    margin-right: 6px;
}

/*Comment Icons*/
.haven-simple-textinput {
    width: 100%;
    padding: .375rem .75rem;
    display: flex;
    height: 40px;
    justify-content: center;
    align-items: flex-start;
    align-self: stretch;
    border-radius: 6px;
    border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    background: var(--Color-Surface, #1A0E2C);
    color: var(--Color-color-neutral-900, #EAE3F1);
}

.haven-simple-textblock {
    width: 100%;
    min-height: 120px;
    border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    background: var(--Color-Surface, #1A0E2C);
    color: var(--Color-color-neutral-900, #EAE3F1);
    border-radius: 6px;
}

.haven-simple-date {
    padding: .375rem .75rem;
    flex: 1 1 auto;
    min-width: 0; /* VERY important in flex layouts */
    height: 40px;
    width: unset;
    align-items: center;
    flex-shrink: 0;
    align-self: stretch;
    border-radius: 8px;
    border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    background-color: var(--Color-Surface, #1A0E2C);
    color: var(--Color-color-neutral-900, #EAE3F1);
    /* Body/Regular/Base */
    font-size: var(--Font-Size-Label-small, 14px);
    font-style: normal;
    font-weight: 500;
    line-height: var(--Line-Height-Label-small, 16px);
}

    .haven-simple-date::-webkit-calendar-picker-indicator {
        filter: invert(1);
    }

.dropdown-menu.dropdown-menu-start {
    border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    background-color: var(--Color-Surface, #1A0E2C);
    color: var(--Color-color-neutral-900, #EAE3F1);
}

    .dropdown-menu.dropdown-menu-start .dropdown-item {
        color: var(--Color-color-neutral-900, #EAE3F1);
    }

        .dropdown-menu.dropdown-menu-start .dropdown-item:focus,
        .dropdown-menu.dropdown-menu-start .dropdown-item:hover {
            color: var(--Color-color-neutral-900, #EAE3F1);
            background-color: var(--Color-color-neutral-50, #1A0E2C);
        }

.haven-simple-dropdown {
    padding: .375rem .75rem;
    flex: 1 1 auto;
    width: 100%;
    height: 40px;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
    align-self: stretch;
    border-radius: 8px;
    border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    background-color: var(--Color-Surface, #1A0E2C);
    color: var(--Color-color-neutral-900, #EAE3F1);
    /* Body/Regular/Base */
    font-size: var(--Font-Size-Label-small, 14px);
    font-style: normal;
    font-weight: 500;
    line-height: var(--Line-Height-Label-small, 16px);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml;utf8,\
    <svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 24 24'>\
    <path d='M6 9l6 6 6-6' stroke='white' stroke-width='2' fill='none'/>\
    </svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 16px;
}

    .haven-simple-dropdown:focus,
    .haven-simple-dropdown:focus-visible {
        outline: none;
        box-shadow: 0 0 0 2px var(--Color-color-neutral-100, #3B2C52);
        border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    }


.form-control:disabled {
    background: var(--Color-color-neutral-50);
    border: 1px solid var(--Color-color-neutral-200);
    color: var(--Color-color-neutral-900);
    opacity: 0.5;
}

/*General information table*/
.haven-information-table {
    --bb-table-sticky-background-color: transparant;
    color: var(--Color-color-neutral-700, #B8ABCA);
    min-width: 100%;
    position: relative;
    border-collapse: separate;
    border-spacing: 0;
}

    .haven-information-table > thead > tr  {
        border: none;
    }

        .haven-information-table > thead > tr > th {
            border: 1px solid var(--Color-Foreground10, rgba(255, 255, 255, 0.10));
            background: #4D497D;
            color: var(--Color-Foreground);
            vertical-align: top;
            padding: 12px;
            height: 48px;
        }

            .haven-information-table > thead > tr > th:first-child {
                border-top-left-radius: 12px;
                border-bottom-left-radius: 12px;
            }

            .haven-information-table > thead > tr > th:last-child {
                border-top-right-radius: 12px;
                border-bottom-right-radius: 12px;
            }

    .haven-information-table > tbody:before {
        line-height: 24px;
        content: ".";
        color: transparent;
        display: block;
    }

    .haven-information-table > tbody,
    .haven-information-table > tbody > tr {
        border: none;
    }

    .haven-information-table > tbody > tr > td {
        border: 1px solid var(--Color-Foreground10, rgba(255, 255, 255, 0.10));
        background: var(--Color-Foreground5, rgba(255, 255, 255, 0.05));
        position: relative;
        margin: 0px;
        color: var(--Color-color-neutral-700, #B8ABCA);
        /* Body/Regular/Base */
        font-size: var(--Font-Size-Body-base, 16px);
        font-style: normal;
        font-weight: 400;
        line-height: var(--Line-Height-Body-base, 24px); /* 150% */
        letter-spacing: 0.32px;
        padding: 8px;
    }

    .haven-information-table tr:first-child td:first-child {
        border-top-left-radius: 12px;
    }

    .haven-information-table tr:last-child td:first-child {
        border-bottom-left-radius: 12px;
    }

    .haven-information-table tr:last-child td:last-child {
        border-bottom-right-radius: 12px;
    }

    .haven-information-table tr:first-child td:last-child {
        border-top-right-radius: 12px;
    }

.haven-information-table-actions {
    display: flex; 
    gap: 16px; 
    justify-content: center; 
    align-items: center; 
    padding-left: 8px; 
    padding-right: 8px;
    height: 24px;
}

    .haven-information-table-actions > i {
        color: var(--Color-color-teal-900, #C0F9E0);
        font-size: var(--Font-Size-Label-small, 14px);
        font-style: normal;
        font-weight: 500;
        line-height: var(--Line-Height-Label-small, 16px);
        cursor: pointer;
    }

/*Table pagination*/
.pagination .page-item .page-link {
    color: var(--Color-color-teal-900, #C0F9E0);
    background-color: transparent;
    /* Body/Regular/Base */
    font-family: var(--Base-Family-Body, Archivo);
    font-size: var(--Font-Size-Body-base, 16px);
    font-style: normal;
    font-weight: 400;
    line-height: var(--Line-Height-Body-base, 24px); /* 150% */
    letter-spacing: 0.32px;
    border: 1px solid var(--Color-Foreground20, rgba(255, 255, 255, 0.20));
}

.pagination .page-item.active .page-link {
    color: var(--Color-Surface);
    background-color: var(--Color-color-teal-900, #C0F9E0);
    border: 1px solid var(--Color-color-teal-900, rgba(255, 255, 255, 0.20));
}

.pagination .page-item.disabled .page-link {
    color: var(--Color-Foreground40);
    background-color: var(--Color-Foreground10, #C0F9E0);
}

.bb-grid-pagination-text {
    display: none;
}

/*Interaction Pane*/
.interaction-block {
    border-radius: 12px;
    border: var(--border-width-border-xs, 1px) solid rgba(255, 255, 255, 0.16);
    background: var(--Color-Surface, #1A0E2C);
    box-shadow: 0 16px 24px 0 rgba(255, 255, 255, 0.04) inset;
    width: 350px;
    height: 360px;
    display: flex;
    padding: 12px 16px 16px 16px;
    flex-direction: column;
    gap: 16px;
}

    .interaction-block .interaction-header {
        display: flex;
        align-items: flex-start;
        align-self: stretch;
    }

        .interaction-block .interaction-header .interaction-titlebox {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            flex: 1 0 0;
        }

            .interaction-block .interaction-header .interaction-titlebox .interaction-title {
                align-self: stretch;
                color: var(--Color-Foreground, #FFF);
                /* Body/Medium/Base */
                font-size: var(--Font-Size-Body-base, 16px);
                font-style: normal;
                font-weight: 500;
                line-height: var(--Line-Height-Body-base, 24px); /* 150% */
                letter-spacing: 0.32px;
            }

            .interaction-block .interaction-header .interaction-titlebox .interaction-subtitle {
                align-self: stretch;
                color: var(--Color-Foreground-60, rgba(255, 255, 255, 0.60));
                /* Body/Medium/Small */
                font-size: var(--Font-Size-Body-small, 14px);
                font-style: normal;
                font-weight: 500;
                line-height: var(--Line-Height-Body-small, 21px); /* 150% */
                letter-spacing: 0.28px;
                gap: 5px;
                display: flex;
            }

        .interaction-block .interaction-header > i {
            width: 16px;
            height: 16px;
            aspect-ratio: 1/1;
            cursor: pointer;
        }

.btn.haven-btn-stripped {
    border: none;
    background: none;
    box-shadow: none;
    display: inline-block;
    padding: 0px;
    height: unset;
}


.form-floating > label::after {
    background-color: transparent !important;
}

.form-select > option {
    background-color: var(--Color-Surface);
    color: var(--Color-Foreground);
    font-size: var(--Font-Size-Label-small);
    font-style: normal;
    font-weight: 500;
    line-height: var(--Line-Height-Label-small);
}

/*Modals*/
.haven-custom-modal {
    background: conic-gradient(from 0deg at 0% 0%, var(--Color-Surface) 0deg, var(--Color-color-purple-400) 360deg);
    border-radius: 12px;
    color: var(--Color-Foreground);
    /* Centering & coverage */
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    height: calc(90% - 50px);
    /* Pop out in front of everything */
    z-index: 999999;
    /* Mute everything behind */
    box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.6);
    /* Contain the scrollable child */
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-left: 32px;
    padding-top: 16px;
    padding-bottom: 16px;
}

    .haven-custom-modal .modal-header {
        height: 48px;
        border-bottom: 2px solid var(--Color-Foreground-5, rgba(255, 255, 255, 0.05));
        margin-bottom: 12px;
        margin-right: 32px;
        display:flex;
    }

        .haven-custom-modal .modal-header > i {
            margin-left: auto;
            cursor: pointer;
        }

/*Side Panel*/
.haven-custom-sidepanel {
    border-radius: 12px 0px 0px 12px;
    color: var(--Color-Foreground);
    /* Centering & coverage */
    position: fixed;
    right: 12px;
    top: 68px;
    width: 360px;
    height: calc(100% - 76px);
    /* Pop out in front of everything */
    z-index: 1089;
    /* Mute everything behind */
    box-shadow: -12px 0 30px rgba(0, 0, 0, 0.18), -4px 0 10px rgba(0, 0, 0, 0.10);
    /* Contain the scrollable child */
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-left: 12px;
    padding-right: 8px;
    padding-top: 12px;
    padding-bottom: 12px;
    /* Offcanvas/Vertical */
    background: var(--Color-Surface);
    border: 1px solid var(--Color-color-neutral-200);
    border-radius: 0px;
    box-shadow: inset 16px 0px 24px rgba(255, 255, 255, 0.04);
}

.product-metadata-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
    flex: 1 0 0;
    padding-top: 8px;
}

    .product-metadata-wrapper .product-metadata {
        display: flex;
        width: 100%;
        flex-direction: row;
        align-items: flex-start;
        gap: 12px;
        align-self: stretch;
    }

        .product-metadata-wrapper .product-metadata .product-metadata-row {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            align-items: stretch;
            gap: 12px;
            width: 100%;
        }
.product-metadata-title {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0px;
    gap: 16px;
}

.product-metadata-block {
    flex: 0 1 calc(33.33% - 8px); /* 3 per row */
    display: flex;
    padding: 24px;
    align-items: flex-start;
    align-self: stretch;
    border-radius: 12px;
    border: 1px solid var(--Color-Foreground-20, rgba(255, 255, 255, 0.20));
    background: var(--Color-Foreground-5, rgba(255, 255, 255, 0.05));
    box-shadow: 0 16px 24px 0 var(--Color-Foreground-5, rgba(255, 255, 255, 0.05)) inset;
    min-width: 300px; /* optional to prevent too much shrinking */
}


@media (max-width: 1100px) {
    .product-metadata-block {
        flex: 0 1 calc(50% - 20px); /* 2 per row */
    }
}


@media (max-width: 700px) {
    .product-metadata-block {
        flex: 0 1 100%; /* 1 per row */
    }
}



.product-metadata-wrapper .product-metadata .product-metadata-block.selected {
    box-shadow: 0 0 8px 0 var(--Color-color-teal-800, #7BE1C7), 0 16px 24px 0 var(--Color-Foreground-5, rgba(255, 255, 255, 0.05)) inset;
}

.product-metadata-keyvaluepair {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1 0 0;
    width: 100%;
    gap: 6px;
}

    .product-metadata-keyvaluepair .product-metadata-keyheader {
        width: 100%;
        display: flex;
        height: 20px;
    }


        .product-metadata-keyvaluepair .product-metadata-keyheader .product-metadata-key {
            color: var(--Color-color-neutral-700, #B8ABCA);
            /* Body/Regular/X-Small */
            font-size: var(--Font-Size-Body-x-small, 12px);
            font-style: normal;
            font-weight: 400;
            line-height: var(--Line-Height-Body-x-small, 18px); /* 150% */
            letter-spacing: 0.24px;
            min-height: 18px;
            display: flex;
            flex-direction: row;
            width: 100%;
            align-items: center;
        }

    .product-metadata-keyvaluepair .product-metadata-value {
        color: var(--Color-Foreground, #FFF);
        /* Body/Regular/X-Small */
        font-size: var(--Font-Size-Body-x-small, 12px);
        font-style: normal;
        font-weight: 400;
        line-height: var(--Line-Height-Body-x-small, 18px); /* 150% */
        letter-spacing: 0.24px;
        width: 100%;
        display: flex;
        gap: 8px;
        align-items: center;
    }

.product-metadata-keyvaluepair .product-metadata-value > i {
    width: 20px !important;
}

.product-metadata-convo {
    display: flex;
    align-items: flex-start;
    gap: -23px;
    align-self: stretch;
}

    .product-metadata-convo .product-metadata-icon {
        color: var(--Color-color-teal-800, #7BE1C7);
        /* Body/Regular/X-Small */
        font-family: var(--Base-Family-Body, Archivo);
        font-size: var(--Font-Size-Body-x-small, 12px);
        font-style: normal;
        font-weight: 400;
        line-height: var(--Line-Height-Body-x-small, 18px); /* 150% */
        letter-spacing: 0.24px;
        padding-right: 4px;
    }

    .product-metadata-convo .product-metadata-icon {
        width: 12px;
        height: 12px;
        aspect-ratio: 1/1;
        line-height: 18px;
        margin-top: 2px;
    }

.product-metadata-buttons {
    margin-left: auto;
    line-height: 18px;
    align-items: center;
    display: flex;
    gap: 12px;
}

.product-metadata-value-edit,
.product-metadata-value-edit:focus {
    color: var(--Color-Foreground, #FFF);
    /* Body/Regular/X-Small */
    font-size: var(--Font-Size-Body-x-small, 12px);
    font-style: normal;
    font-weight: 400;
    line-height: var(--Line-Height-Body-x-small, 18px); /* 150% */
    letter-spacing: 0.24px;
    background: var(--Color-Surface, #1A0E2C);
}

    .product-metadata-value-edit:focus {
        border: 1px solid #A192B5 !important;
        /* Input Spread Primary */
        box-shadow: 0px 0px 0px 2px #3B2C52 !important;
    }

.product-metadata-block-new {
    background-color: transparent;
    border: 1px solid var(--Color-Foreground5, rgba(255, 255, 255, 0.20));
}

.product-metadata-editorblock {
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: 100%;
}

    .product-metadata-editorblock .form-floating {
        flex: 1 1 auto;
        min-width: 0;
    }

    .product-metadata-editorblock .product-metadata-editorbuttons {
        flex: 0 0 auto;
        width: 20px;
        display: flex;
        flex-direction: column;
        gap: 16px;
        padding-top: 8px;
        align-items: center; /* optional, usually nice */
    }

/*Modal*/
.modal-dialog {
    max-width: calc(100vw - 64px);
}

/*Toasts*/
.toast {
    box-sizing: border-box;
    padding: 0px;
    border: 1px solid var(--Color-color-neutral-200);
    filter: drop-shadow(0px 8px 16px rgba(255, 255, 255, 0.1));
    border-radius: 6px;
    overflow: hidden;
}

.toast-header {
    padding: 8px 12px;
    height: 40px;
    background: var(--Color-Surface);
    border-bottom: 1px solid var(--Color-color-neutral-200);
    color: var(--Color-color-neutral-700);
}

    .toast-header .btn-close {
        --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2370608E'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e") !important;
    }

.toast .progress .progress-bar.bg-info {
    background-color: var(--Color-color-teal-900) !important;
}

.toast .text-info {
    color: var(--Color-color-teal-900) !important;
}

.toast-body {
    /* Message Container */
    /* Auto layout */
    padding: 12px;
    background: var(--Color-Surface);
    backdrop-filter: blur(5px);
    color: var(--Color-color-neutral-900);
}