/*
|--------------------------------------------------------------------------
| Trainingen
|--------------------------------------------------------------------------
*/

.snooc-training-page {
    display: grid;
    gap: 22px;

    width: 100%;
    min-width: 0;
}

/*
|--------------------------------------------------------------------------
| Paginakop
|--------------------------------------------------------------------------
*/

.snooc-training-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;

    padding: 26px 28px;

    border: 1px solid var(--sn-border);
    border-radius: 22px;

    background:
        radial-gradient(
            circle at top right,
            rgba(159, 29, 53, 0.11),
            transparent 270px
        ),
        #ffffff;

    box-shadow:
        0 16px 40px rgba(79, 13, 27, 0.08);
}

.snooc-training-heading {
    display: flex;
    align-items: center;
    gap: 17px;

    min-width: 0;
}

.snooc-training-heading-icon {
    display: flex;
    flex: 0 0 62px;
    align-items: center;
    justify-content: center;

    width: 62px;
    height: 62px;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            var(--sn-red),
            var(--sn-red-dark)
        );

    color: #ffffff;

    box-shadow:
        0 12px 28px rgba(159, 29, 53, 0.24);

    font-size: 24px;
}

.snooc-training-eyebrow,
.snooc-training-card-eyebrow {
    display: block;

    margin: 0 0 5px;

    color: var(--sn-red);

    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.snooc-training-heading h1 {
    margin: 0;

    color: var(--sn-text);

    font-size: clamp(25px, 4vw, 34px);
    font-weight: 850;
    line-height: 1.1;
}

.snooc-training-heading p {
    margin: 7px 0 0;

    color: var(--sn-muted);

    font-size: 14px;
    line-height: 1.5;
}

.snooc-training-import-result {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    min-height: 38px;

    padding: 8px 13px;

    border-radius: 999px;

    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.snooc-training-import-result.is-valid {
    border: 1px solid #a7f3d0;

    background: #ecfdf5;
    color: #047857;
}

.snooc-training-import-result.is-invalid {
    border: 1px solid #fecdd3;

    background: #fff1f2;
    color: #be123c;
}

/*
|--------------------------------------------------------------------------
| Kaarten
|--------------------------------------------------------------------------
*/

.snooc-training-import-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(300px, 0.6fr);
    align-items: start;
    gap: 18px;
}

.snooc-training-card {
    min-width: 0;

    padding: 24px;

    border: 1px solid var(--sn-border);
    border-radius: 21px;

    background: #ffffff;

    box-shadow:
        0 14px 36px rgba(79, 13, 27, 0.075);
}

.snooc-training-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;

    margin-bottom: 21px;
    padding-bottom: 17px;

    border-bottom: 1px solid var(--sn-border);
}

.snooc-training-card-header h2 {
    margin: 0;

    color: var(--sn-text);

    font-size: 20px;
    font-weight: 830;
    line-height: 1.25;
}

.snooc-training-card-header p {
    margin: 7px 0 0;

    color: var(--sn-muted);

    font-size: 13px;
    line-height: 1.55;
}

.snooc-training-card-icon {
    display: flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    border-radius: 13px;

    background: var(--sn-red-soft);
    color: var(--sn-red);

    font-size: 16px;
}

.snooc-training-card-icon.is-success {
    background: #ecfdf5;
    color: #047857;
}

.snooc-training-card-icon.is-error {
    background: #fff1f2;
    color: #be123c;
}

/*
|--------------------------------------------------------------------------
| Fouten en waarschuwingen
|--------------------------------------------------------------------------
*/

.snooc-training-error,
.snooc-training-import-warning {
    display: flex;
    align-items: flex-start;
    gap: 13px;

    padding: 16px 18px;

    border-radius: 15px;
}

.snooc-training-error {
    border: 1px solid #fecdd3;

    background: #fff1f2;
    color: #be123c;
}

.snooc-training-import-warning {
    border: 1px solid #f0d49a;

    background: #fffbeb;
    color: #92400e;
}

.snooc-training-error-icon,
.snooc-training-import-warning > span {
    display: flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    border-radius: 10px;

    background: rgba(255, 255, 255, 0.65);

    font-size: 17px;
}

.snooc-training-error strong,
.snooc-training-import-warning strong {
    display: block;

    margin-bottom: 6px;

    font-size: 14px;
}

.snooc-training-error ul,
.snooc-training-import-warning ul {
    margin: 0;
    padding-left: 19px;

    font-size: 12px;
    line-height: 1.55;
}

/*
|--------------------------------------------------------------------------
| Formulier
|--------------------------------------------------------------------------
*/

.snooc-training-form {
    display: grid;
    gap: 17px;
}

.snooc-training-primary-button,
.snooc-training-secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    min-height: 46px;

    padding: 10px 16px;

    border-radius: 12px;

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;

    cursor: pointer;
}

.snooc-training-primary-button {
    width: 100%;

    border: 0;

    background:
        linear-gradient(
            135deg,
            var(--sn-red),
            var(--sn-red-dark)
        );

    color: #ffffff;

    box-shadow:
        0 9px 22px rgba(159, 29, 53, 0.22);
}

.snooc-training-primary-button:hover,
.snooc-training-primary-button:focus-visible {
    outline: 0;

    transform: translateY(-1px);

    box-shadow:
        0 13px 28px rgba(159, 29, 53, 0.28);
}

.snooc-training-primary-button:disabled {
    opacity: 0.65;

    cursor: wait;
    transform: none;
}

.snooc-training-secondary-button {
    border: 1px solid var(--sn-border-strong);

    background: #ffffff;
    color: var(--sn-red);

    text-decoration: none;
}

.snooc-training-secondary-button:hover,
.snooc-training-secondary-button:focus-visible {
    border-color: #d2a5b0;
    outline: 0;

    background: var(--sn-red-soft);
}

/*
|--------------------------------------------------------------------------
| Dropzone
|--------------------------------------------------------------------------
*/

.snooc-training-import-dropzone {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;

    min-height: 210px;

    padding: 25px;

    border: 2px dashed #dfbdc5;
    border-radius: 15px;

    outline: 0;

    background: #fffafb;
    color: var(--sn-text);

    text-align: center;

    cursor: pointer;

    transition:
        border-color 0.18s ease,
        background-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.snooc-training-import-dropzone:hover,
.snooc-training-import-dropzone:focus-visible,
.snooc-training-import-dropzone.is-dragging {
    border-color: var(--sn-red);

    background: #fff5f7;

    box-shadow:
        0 0 0 4px rgba(159, 29, 53, 0.07);
}

.snooc-training-import-dropzone.is-dragging {
    transform: scale(1.005);
}

.snooc-training-import-dropzone.is-error {
    border-color: #e11d48;

    background: #fff1f2;
}

.snooc-training-import-dropzone.has-file {
    border-color: #5fbd97;

    background: #f2fff8;
}

.snooc-training-import-dropzone input[type="file"] {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    opacity: 0;
    pointer-events: none;
}

.snooc-training-import-dropzone-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 52px;
    height: 52px;

    margin-bottom: 4px;

    border-radius: 15px;

    background: var(--sn-red-soft);
    color: var(--sn-red);

    font-size: 23px;
}

.snooc-training-import-dropzone strong {
    font-size: 15px;
    font-weight: 850;
}

.snooc-training-import-dropzone >
span:not(.snooc-training-import-dropzone-icon) {
    color: var(--sn-muted);

    font-size: 13px;
}

.snooc-training-import-dropzone small {
    color: #9a7d85;

    font-size: 11px;
    font-weight: 650;
}

/*
|--------------------------------------------------------------------------
| Geselecteerd bestand
|--------------------------------------------------------------------------
*/

.snooc-training-import-selected-file {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 12px 13px;

    border: 1px solid #ccebdc;
    border-radius: 12px;

    background: #f3fff9;
}

.snooc-training-import-selected-file[hidden] {
    display: none !important;
}

.snooc-training-import-selected-icon {
    display: flex;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    border-radius: 10px;

    background: #dcfce7;
    color: #087f5b;
}

.snooc-training-import-selected-file > div {
    flex: 1 1 auto;
    min-width: 0;
}

.snooc-training-import-selected-file strong,
.snooc-training-import-selected-file span {
    display: block;
}

.snooc-training-import-selected-file strong {
    overflow: hidden;

    color: var(--sn-text);

    font-size: 12px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.snooc-training-import-selected-file div span {
    margin-top: 2px;

    color: var(--sn-muted);

    font-size: 10px;
}

.snooc-training-import-selected-file button {
    display: flex;
    flex: 0 0 32px;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    padding: 0;

    border: 0;
    border-radius: 9px;

    background: transparent;
    color: #9f1239;

    cursor: pointer;
}

.snooc-training-import-selected-file button:hover,
.snooc-training-import-selected-file button:focus-visible {
    outline: 0;

    background: #ffe4e6;
}

.snooc-training-import-client-error {
    padding: 11px 13px;

    border: 1px solid #fecdd3;
    border-radius: 10px;

    background: #fff1f2;
    color: #be123c;

    font-size: 12px;
    font-weight: 700;
}

.snooc-training-import-client-error[hidden] {
    display: none !important;
}

/*
|--------------------------------------------------------------------------
| Kolommenlijst
|--------------------------------------------------------------------------
*/

.snooc-training-import-column-list {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 8px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.snooc-training-import-column-list li {
    display: flex;
    align-items: center;
    gap: 9px;

    min-width: 0;
    padding: 9px;

    border: 1px solid var(--sn-border);
    border-radius: 10px;

    background: #ffffff;
}

.snooc-training-import-column-list li > span {
    display: flex;
    flex: 0 0 27px;
    align-items: center;
    justify-content: center;

    width: 27px;
    height: 27px;

    border-radius: 8px;

    background: var(--sn-red-soft);
    color: var(--sn-red);

    font-size: 10px;
    font-weight: 850;
}

.snooc-training-import-column-list li > div {
    min-width: 0;
}

.snooc-training-import-column-list strong,
.snooc-training-import-column-list small {
    display: block;
}

.snooc-training-import-column-list strong {
    color: var(--sn-text);

    font-size: 10.5px;
    font-weight: 800;
}

.snooc-training-import-column-list small {
    margin-top: 2px;

    color: var(--sn-muted);

    font-size: 9px;
    line-height: 1.3;
}

.snooc-training-import-help-note {
    display: flex;
    align-items: flex-start;
    gap: 9px;

    margin-top: 14px;
    padding: 11px 12px;

    border-radius: 10px;

    background: #f8f4f5;
    color: var(--sn-muted);
}

.snooc-training-import-help-note i {
    margin-top: 2px;

    color: var(--sn-red);
}

.snooc-training-import-help-note p {
    margin: 0;

    font-size: 11px;
    line-height: 1.5;
}

.snooc-training-import-template-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    width: 100%;
    min-height: 40px;

    margin-top: 14px;
    padding: 9px 13px;

    border: 1px solid var(--sn-border-strong);
    border-radius: 10px;

    background: #ffffff;
    color: var(--sn-red);

    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

.snooc-training-import-template-button:hover,
.snooc-training-import-template-button:focus-visible {
    border-color: #d2a5b0;
    outline: 0;

    background: var(--sn-red-soft);
}

/*
|--------------------------------------------------------------------------
| Preview
|--------------------------------------------------------------------------
*/

.snooc-training-import-preview-card {
    min-width: 0;
}

.snooc-training-import-summary {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 10px;

    margin-bottom: 16px;
}

.snooc-training-import-summary-item {
    padding: 12px 13px;

    border: 1px solid var(--sn-border);
    border-radius: 11px;

    background: #ffffff;
}

.snooc-training-import-summary-item span,
.snooc-training-import-summary-item strong {
    display: block;
}

.snooc-training-import-summary-item span {
    color: var(--sn-muted);

    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.snooc-training-import-summary-item strong {
    margin-top: 5px;

    color: var(--sn-text);

    font-size: 17px;
    font-weight: 850;
}

.snooc-training-import-summary-item.is-valid {
    border-color: #b9ead4;

    background: #f3fff9;
}

.snooc-training-import-summary-item.is-valid strong {
    color: #087f5b;
}

.snooc-training-import-summary-item.is-invalid {
    border-color: #fecdd3;

    background: #fff1f2;
}

.snooc-training-import-summary-item.is-invalid strong {
    color: #be123c;
}

/*
|--------------------------------------------------------------------------
| Previewtabel
|--------------------------------------------------------------------------
*/

.snooc-training-table-wrap {
    width: 100%;
    min-width: 0;

    overflow-x: auto;

    border: 1px solid var(--sn-border);
    border-radius: 15px;

    background: #ffffff;
}

.snooc-training-import-table {
    width: 100%;
    min-width: 1180px;

    margin: 0;

    border: 0;
    border-collapse: collapse;
    table-layout: fixed;
}

.snooc-training-import-table thead th {
    height: 42px;

    padding: 11px 12px;

    border-bottom: 1px solid var(--sn-border);

    background: #f8ecef;
    color: #632b39;

    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.045em;
    text-align: left;
    text-transform: uppercase;
}

.snooc-training-import-table thead th:nth-child(1) {
    width: 68px;
}

.snooc-training-import-table thead th:nth-child(2) {
    width: 235px;
}

.snooc-training-import-table thead th:nth-child(3) {
    width: 105px;
}

.snooc-training-import-table thead th:nth-child(4) {
    width: 110px;
}

.snooc-training-import-table thead th:nth-child(5) {
    width: 165px;
}

.snooc-training-import-table thead th:nth-child(6) {
    width: 185px;
}

.snooc-training-import-table thead th:nth-child(7),
.snooc-training-import-table thead th:nth-child(8) {
    width: 75px;
}

.snooc-training-import-table thead th:nth-child(9) {
    width: 230px;
}

.snooc-training-import-table tbody td {
    min-height: 60px;

    padding: 11px 12px;

    border-bottom: 1px solid #f0e7e9;

    background: #ffffff;
    color: #4a373d;

    font-size: 11px;
    line-height: 1.4;
    text-align: left;
    vertical-align: middle;

    overflow-wrap: anywhere;
}

.snooc-training-import-table tbody tr:last-child td {
    border-bottom: 0;
}

.snooc-training-import-table tbody tr.is-invalid td {
    background: #fffafb;
}

.snooc-training-import-table td strong,
.snooc-training-import-table td small {
    display: block;
}

.snooc-training-import-table td strong {
    color: var(--sn-text);

    font-weight: 750;
}

.snooc-training-import-table td small {
    margin-top: 3px;

    color: var(--sn-muted);

    font-size: 9px;
}

.snooc-training-row-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 29px;
    height: 29px;

    padding: 0 8px;

    border-radius: 9px;

    background: #f8eff1;
    color: #89616b;

    font-size: 10px;
    font-weight: 800;
}

.snooc-training-import-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    min-height: 28px;

    padding: 5px 9px;

    border-radius: 999px;

    font-size: 10px;
    font-weight: 800;
}

.snooc-training-import-status.is-valid {
    border: 1px solid #a7e9cc;

    background: #ecfdf5;
    color: #087f5b;
}

.snooc-training-import-status.is-invalid {
    border: 1px solid #fecdd3;

    background: #fff1f2;
    color: #be123c;
}

.snooc-training-import-row-errors {
    margin: 7px 0 0;
    padding-left: 17px;

    color: #be123c;

    font-size: 9px;
    font-weight: 650;
    line-height: 1.45;
}

/*
|--------------------------------------------------------------------------
| Previewacties
|--------------------------------------------------------------------------
*/

.snooc-training-import-preview-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    margin-top: 17px;
    padding-top: 15px;

    border-top: 1px solid var(--sn-border);
}

.snooc-training-import-preview-actions form {
    margin: 0;
}

.snooc-training-import-preview-actions
.snooc-training-primary-button {
    width: auto;
    min-width: 220px;
}

.snooc-training-import-blocked {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    min-height: 42px;

    padding: 9px 13px;

    border: 1px solid #fecdd3;
    border-radius: 10px;

    background: #fff1f2;
    color: #be123c;

    font-size: 11px;
    font-weight: 800;
}

/*
|--------------------------------------------------------------------------
| Laden
|--------------------------------------------------------------------------
*/

.snooc-training-import-page .is-loading i {
    animation:
        snooc-training-import-spin
        0.8s
        linear
        infinite;
}

@keyframes snooc-training-import-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/*
|--------------------------------------------------------------------------
| Tablet
|--------------------------------------------------------------------------
*/

@media (max-width: 1050px) {
    .snooc-training-import-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .snooc-training-import-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

/*
|--------------------------------------------------------------------------
| Mobiel
|--------------------------------------------------------------------------
*/

@media (max-width: 760px) {
    .snooc-training-page {
        gap: 15px;
    }

    .snooc-training-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;

        padding: 19px;
    }

    .snooc-training-heading {
        align-items: flex-start;
    }

    .snooc-training-heading-icon {
        flex-basis: 52px;

        width: 52px;
        height: 52px;

        border-radius: 15px;

        font-size: 20px;
    }

    .snooc-training-import-result {
        align-self: flex-start;
    }

    .snooc-training-card {
        padding: 17px;
    }

    .snooc-training-card-header {
        gap: 12px;

        margin-bottom: 17px;
        padding-bottom: 14px;
    }

    .snooc-training-import-column-list {
        grid-template-columns: 1fr;
    }

    .snooc-training-import-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .snooc-training-import-dropzone {
        min-height: 180px;

        padding: 20px 15px;
    }

    .snooc-training-table-wrap {
        overflow: visible;

        border: 0;
        border-radius: 0;

        background: transparent;
    }

    .snooc-training-import-table {
        display: block;

        min-width: 0;

        background: transparent;
    }

    .snooc-training-import-table thead {
        display: none;
    }

    .snooc-training-import-table tbody {
        display: grid;
        gap: 13px;
    }

    .snooc-training-import-table tbody tr {
        display: grid;

        padding: 15px;

        border: 1px solid var(--sn-border);
        border-radius: 16px;

        background: #ffffff;

        box-shadow:
            0 8px 22px rgba(79, 13, 27, 0.06);
    }

    .snooc-training-import-table tbody tr.is-invalid {
        border-color: #fecdd3;
    }

    .snooc-training-import-table tbody td {
        display: grid;
        grid-template-columns:
            minmax(105px, 34%)
            minmax(0, 1fr);
        align-items: start;
        gap: 10px;

        width: 100%;
        min-height: 43px;

        padding: 8px 0;

        border: 0;
        border-bottom: 1px solid #f2e9eb;

        background: transparent !important;
    }

    .snooc-training-import-table tbody td:last-child {
        border-bottom: 0;
    }

    .snooc-training-import-table tbody td::before {
        content: attr(data-label);

        color: #81636b;

        font-size: 9px;
        font-weight: 800;
        letter-spacing: 0.055em;
        text-transform: uppercase;
    }

    .snooc-training-import-preview-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .snooc-training-import-preview-actions form,
    .snooc-training-import-preview-actions
    .snooc-training-primary-button,
    .snooc-training-secondary-button,
    .snooc-training-import-blocked {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .snooc-training-heading h1 {
        font-size: 25px;
    }

    .snooc-training-card {
        padding: 14px;
    }

    .snooc-training-import-summary {
        grid-template-columns: 1fr;
    }

    .snooc-training-import-table tbody td {
        grid-template-columns:
            92px
            minmax(0, 1fr);
    }
}

/*
|--------------------------------------------------------------------------
| Trainingimport – velden
|--------------------------------------------------------------------------
*/

.snooc-training-import-page .snooc-training-field {
    display: grid;
    gap: 7px;

    width: 100%;
    min-width: 0;
}

.snooc-training-import-page .snooc-training-field label {
    display: block;

    margin: 0;

    color: #453439;

    font-size: 11px;
    font-weight: 800;
    line-height: 1.35;
}

/*
|--------------------------------------------------------------------------
| Wrapper
|--------------------------------------------------------------------------
*/

.snooc-training-import-page .snooc-training-input-wrap {
    position: relative;

    display: block;

    width: 100%;
    min-width: 0;
    height: 46px;

    margin: 0;
    padding: 0;
}

/*
|--------------------------------------------------------------------------
| Icoon
|--------------------------------------------------------------------------
|
| Het icoon krijgt een eigen vaste strook van 46px.
| Hierdoor kan de selecttekst er nooit meer doorheen lopen.
|
*/

.snooc-training-import-page
.snooc-training-input-wrap
.snooc-training-input-icon {
    position: absolute !important;
    top: 1px !important;
    bottom: 1px !important;
    left: 1px !important;
    z-index: 4 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 45px !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-right: 1px solid #ead1d7 !important;
    border-radius: 11px 0 0 11px !important;

    background: #fbf1f3 !important;
    color: #9f1d35 !important;

    font-size: 13px !important;
    line-height: 1 !important;

    transform: none !important;

    pointer-events: none !important;
}

.snooc-training-import-page
.snooc-training-input-wrap
.snooc-training-input-icon i {
    position: static !important;

    display: block !important;

    width: auto !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;

    color: inherit !important;

    font-size: inherit !important;
    line-height: 1 !important;

    transform: none !important;
}

/*
|--------------------------------------------------------------------------
| Select
|--------------------------------------------------------------------------
*/

.snooc-training-import-page
.snooc-training-input-wrap
select {
    position: relative;
    z-index: 1;

    display: block;

    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;
    height: 46px !important;

    margin: 0 !important;

    /*
     * 57px links:
     * 45px iconenstrook + 12px ruimte.
     *
     * !important is hier nodig omdat globale formulier-CSS
     * anders de padding opnieuw overschrijft.
     */
    padding:
        9px
        42px
        9px
        57px !important;

    border: 1px solid #e2bdc6 !important;
    border-radius: 12px !important;

    outline: 0 !important;

    background-color: #ffffff !important;
    color: #34292c !important;

    font-family: inherit !important;
    font-size: 12px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
    text-indent: 0 !important;

    cursor: pointer;

    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background-color 0.18s ease;
}

.snooc-training-import-page
.snooc-training-input-wrap
select:hover {
    border-color: #d3a5b0 !important;
}

.snooc-training-import-page
.snooc-training-input-wrap
select:focus {
    border-color: #9f1d35 !important;

    box-shadow:
        0 0 0 3px rgba(159, 29, 53, 0.10) !important;
}

.snooc-training-import-page
.snooc-training-input-wrap:focus-within
.snooc-training-input-icon {
    border-right-color: #d8aab5 !important;

    background: #f8e6ea !important;
    color: #741326 !important;
}

.snooc-training-import-page
.snooc-training-input-wrap
select:disabled {
    border-color: #e4d9dc !important;

    background-color: #f7f3f4 !important;
    color: #a69297 !important;

    cursor: not-allowed;
}

.snooc-training-import-page
.snooc-training-input-wrap:has(select:disabled)
.snooc-training-input-icon {
    border-right-color: #e4d9dc !important;

    background: #f1edef !important;
    color: #af9ca1 !important;
}

/*
|--------------------------------------------------------------------------
| Datumfilter
|--------------------------------------------------------------------------
*/

.snooc-training-import-page
.snooc-training-deelname-filter-form {
    margin: 0 0 17px;
    padding: 0 0 17px;

    border-bottom: 1px solid var(--sn-border);
}

/*
|--------------------------------------------------------------------------
| Deelname preview
|--------------------------------------------------------------------------
*/

.snooc-training-deelname-preview-table {
    min-width: 900px;
}

.snooc-training-deelname-preview-table
thead th:nth-child(1) {
    width: 72px;
}

.snooc-training-deelname-preview-table
thead th:nth-child(2) {
    width: 135px;
}

.snooc-training-deelname-preview-table
thead th:nth-child(3) {
    width: 230px;
}

.snooc-training-deelname-preview-table
thead th:nth-child(4) {
    width: 280px;
}

.snooc-training-deelname-preview-table
thead th:nth-child(5) {
    width: 250px;
}

.snooc-training-muted {
    color: var(--sn-muted);

    font-size: 10px;
    font-style: italic;
}

/*
|--------------------------------------------------------------------------
| Creditpointimport
|--------------------------------------------------------------------------
*/

.snooc-training-credit-summary {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 12px 14px;

    border: 1px solid #ead1a5;
    border-radius: 12px;

    background: #fffbeb;
    color: #78450a;
}

.snooc-training-credit-summary-icon {
    display: flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 11px;

    background: #fef3c7;
    color: #b7791f;

    font-size: 16px;
}

.snooc-training-credit-summary div {
    min-width: 0;
}

.snooc-training-credit-summary span,
.snooc-training-credit-summary strong {
    display: block;
}

.snooc-training-credit-summary div > span {
    color: #94651d;

    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.snooc-training-credit-summary strong {
    margin-top: 3px;

    color: #683d0a;

    font-size: 14px;
    font-weight: 850;
}

.snooc-training-credit-preview-table {
    min-width: 1000px;
}

.snooc-training-credit-preview-table
thead th:nth-child(1) {
    width: 72px;
}

.snooc-training-credit-preview-table
thead th:nth-child(2) {
    width: 135px;
}

.snooc-training-credit-preview-table
thead th:nth-child(3) {
    width: 215px;
}

.snooc-training-credit-preview-table
thead th:nth-child(4) {
    width: 270px;
}

.snooc-training-credit-preview-table
thead th:nth-child(5) {
    width: 125px;
}

.snooc-training-credit-preview-table
thead th:nth-child(6) {
    width: 250px;
}

.snooc-training-credit-value {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    min-height: 29px;

    padding: 5px 9px;

    border: 1px solid #f0d69a;
    border-radius: 999px;

    background: #fffbeb;
    color: #976112;

    font-size: 10px;
    font-weight: 850;
}

.snooc-training-credit-value i {
    color: #d49a22;

    font-size: 10px;
}

/*
|--------------------------------------------------------------------------
| Importmeldingen – overflow correctie
|--------------------------------------------------------------------------
*/

.snooc-training-page,
.snooc-training-import-page,
.snooc-training-import-page > *,
.snooc-training-import-layout,
.snooc-training-import-layout > *,
.snooc-training-card,
.snooc-training-form {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
}

/*
 * Het tekstgedeelte binnen de flexmelding moet mogen krimpen.
 * Zonder min-width: 0 behoudt een flex-child de breedte van lange tekst.
 */
.snooc-training-error > div,
.snooc-training-import-warning > div {
    flex: 1 1 auto;

    min-width: 0;
    max-width: 100%;
}

/*
 * Lange foutmeldingen, bestandsnamen, ID-nummers en samengestelde
 * teksten mogen binnen de beschikbare breedte afbreken.
 */
.snooc-training-error,
.snooc-training-import-warning,
.snooc-training-error strong,
.snooc-training-import-warning strong,
.snooc-training-error ul,
.snooc-training-import-warning ul,
.snooc-training-error li,
.snooc-training-import-warning li {
    box-sizing: border-box;

    min-width: 0;
    max-width: 100%;

    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
}

.snooc-training-error,
.snooc-training-import-warning {
    width: 100%;

    overflow: hidden;
}

.snooc-training-error ul,
.snooc-training-import-warning ul {
    width: 100%;

    margin-right: 0;
    padding-right: 0;
}

/*
|--------------------------------------------------------------------------
| Mobiele foutmeldingen
|--------------------------------------------------------------------------
*/

@media (max-width: 760px) {
    .snooc-training-error,
    .snooc-training-import-warning {
        align-items: flex-start;
        gap: 10px;

        width: 100%;
        max-width: 100%;

        padding: 13px 14px;
    }

    .snooc-training-error-icon,
    .snooc-training-import-warning > span {
        flex: 0 0 31px;

        width: 31px;
        height: 31px;

        font-size: 15px;
    }

    .snooc-training-error strong,
    .snooc-training-import-warning strong {
        font-size: 12px;
        line-height: 1.4;
    }

    .snooc-training-error ul,
    .snooc-training-import-warning ul {
        margin: 5px 0 0;
        padding-left: 16px;

        font-size: 11px;
        line-height: 1.5;
    }

    .snooc-training-error li,
    .snooc-training-import-warning li {
        padding-right: 2px;
    }
}

/*
|--------------------------------------------------------------------------
| Mobiele foutregels deelname- en creditpointimport
|--------------------------------------------------------------------------
*/

@media (max-width: 760px) {

    /*
     * De specifieke tabellen zetten onderaan de CSS opnieuw
     * een vaste minimale breedte van 900px/1000px.
     * Op mobiel moet die vaste breedte worden opgeheven.
     */
    .snooc-training-deelname-preview-table,
    .snooc-training-credit-preview-table {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;

        table-layout: auto !important;
    }

    /*
     * Iedere mobiele resultaatkaart binnen het scherm houden.
     */
    .snooc-training-deelname-preview-table tbody,
    .snooc-training-credit-preview-table tbody,
    .snooc-training-deelname-preview-table tbody tr,
    .snooc-training-credit-preview-table tbody tr {
        box-sizing: border-box;

        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    /*
     * Alle cellen moeten kunnen krimpen.
     */
    .snooc-training-deelname-preview-table tbody td,
    .snooc-training-credit-preview-table tbody td {
        box-sizing: border-box;

        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    /*
     * Alleen de statuscel met de foutmelding.
     */
    .snooc-training-deelname-preview-table tbody td:last-child,
    .snooc-training-credit-preview-table tbody td:last-child {
        grid-template-columns:
            92px
            minmax(0, 1fr) !important;

        overflow: hidden;
    }

    /*
     * De statusinhoud krijgt een begrensde tweede kolom.
     */
    .snooc-training-deelname-preview-table
    tbody td:last-child > *,
    .snooc-training-credit-preview-table
    tbody td:last-child > * {
        min-width: 0;
        max-width: 100%;
    }

    /*
     * De rode foutbadge mag niet breder worden dan de beschikbare ruimte.
     */
    .snooc-training-deelname-preview-table
    .snooc-training-import-status,
    .snooc-training-credit-preview-table
    .snooc-training-import-status {
        box-sizing: border-box;

        width: 100%;
        min-width: 0;
        max-width: 100%;

        white-space: normal;
    }

    /*
     * Fouttekst onder de badge binnen dezelfde rechterkolom plaatsen.
     */
    .snooc-training-deelname-preview-table
    .snooc-training-import-row-errors,
    .snooc-training-credit-preview-table
    .snooc-training-import-row-errors {
        grid-column: 2;

        box-sizing: border-box;

        width: 100%;
        min-width: 0;
        max-width: 100%;

        margin:
            7px
            0
            0;
        padding:
            0
            4px
            0
            15px;

        overflow-wrap: anywhere;
        word-break: break-word;
        white-space: normal;
    }

    .snooc-training-deelname-preview-table
    .snooc-training-import-row-errors li,
    .snooc-training-credit-preview-table
    .snooc-training-import-row-errors li {
        min-width: 0;
        max-width: 100%;

        overflow-wrap: anywhere;
        word-break: break-word;
    }
}

/*
|--------------------------------------------------------------------------
| Afgeronde training - KPI's
|--------------------------------------------------------------------------
*/

.snooc-training-result-card {
    overflow: hidden;
}

.snooc-training-result-stats {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.snooc-training-result-stat {
    display: flex;
    align-items: center;
    gap: 13px;

    min-width: 0;

    padding: 17px;

    border: 1px solid var(--sn-border);
    border-radius: 15px;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #fcfafb
        );
}

.snooc-training-result-stat-icon {
    display: flex;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border-radius: 12px;

    background: var(--sn-red-soft);
    color: var(--sn-red);

    font-size: 15px;
}

.snooc-training-result-stat > div {
    min-width: 0;
}

.snooc-training-result-stat small,
.snooc-training-result-stat strong,
.snooc-training-result-stat div > span {
    display: block;
}

.snooc-training-result-stat small {
    margin-bottom: 3px;

    color: var(--sn-muted);

    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.snooc-training-result-stat strong {
    color: var(--sn-text);

    font-size: 23px;
    font-weight: 850;
    line-height: 1.1;
}

.snooc-training-result-stat div > span {
    margin-top: 4px;

    color: var(--sn-muted);

    font-size: 10px;
    line-height: 1.35;
}

/*
|--------------------------------------------------------------------------
| Positieve KPI
|--------------------------------------------------------------------------
*/

.snooc-training-result-stat.is-success {
    border-color: #b9e5cd;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f1fbf5
        );
}

.snooc-training-result-stat.is-success
.snooc-training-result-stat-icon {
    background: #e8f8ef;
    color: #15803d;
}

.snooc-training-result-stat.is-success strong {
    color: #166534;
}

/*
|--------------------------------------------------------------------------
| Afgerond status deelnemers
|--------------------------------------------------------------------------
*/

.snooc-training-completed {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    min-width: 62px;
    min-height: 28px;

    padding: 5px 9px;

    border-radius: 999px;

    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.snooc-training-completed i {
    margin: 0;
    padding: 0;

    border: 0;

    font-size: 10px;
}

.snooc-training-completed.is-complete {
    border: 1px solid #a7e3c1;

    background: #ecfdf3;
    color: #15803d;
}

.snooc-training-completed.is-incomplete {
    border: 1px solid #fecdd3;

    background: #fff1f2;
    color: #be123c;
}

/*
|--------------------------------------------------------------------------
| Responsive resultaat KPI's
|--------------------------------------------------------------------------
*/

@media (max-width: 1000px) {
    .snooc-training-result-stats {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .snooc-training-result-stats {
        grid-template-columns: 1fr;
    }

    .snooc-training-result-stat {
        padding: 14px;
    }
}