﻿/* 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;
    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;
}

/* 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);
}

/*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-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;
    }


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-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);
    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 {
        box-shadow: 0 0 0 2px var(--Color-color-neutral-100, #3B2C52);
        border: 1px solid var(--Color-color-neutral-200, #4C3C66);
    }

    .form-floating > .form-control:disabled, .form-floating > select:disabled {
        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-color-neutral-200, #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);
    }

.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-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;
    align-items: flex-start;
    gap: 4px;
}

    .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;
}