h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.account-page {
    align-items: center;
    background: #f4f8fc;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    min-height: 100vh;
    padding: 1.5rem;
}

.account-card {
    background: #ffffff;
    border: 1px solid #dce7f2;
    border-radius: 1rem;
    box-shadow: 0 1rem 3rem rgba(8, 37, 68, .09);
    color: #14283d;
    max-width: 28rem;
    padding: 2rem;
    width: 100%;
}

.account-kicker {
    color: #0078d4;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .08em;
    margin: 0;
    text-transform: uppercase;
}

.account-card h1 { margin: .4rem 0 .75rem; }
.account-card p { line-height: 1.55; }
.account-form { display: grid; gap: .75rem; margin-top: 1.5rem; }
.account-form input { border: 1px solid #aebfce; border-radius: .45rem; font: inherit; padding: .7rem; }
.account-form button { background: #0078d4; border: 0; border-radius: .45rem; color: white; cursor: pointer; font: inherit; font-weight: 700; margin-top: .5rem; padding: .75rem 1rem; }
.account-form button:disabled { cursor: wait; opacity: .7; }
.invite-accept-button { background: #0078d4; border: 0; border-radius: .45rem; color: white; cursor: pointer; font: inherit; font-weight: 700; margin-top: .5rem; padding: .75rem 1rem; }
.invite-accept-button:disabled { cursor: wait; opacity: .7; }
.account-feedback { border-radius: .45rem; margin-top: 1.25rem; padding: .8rem; }
.account-feedback.success { background: #e8f7ef; color: #17633b; }
.account-feedback.error { background: #fff0f0; color: #a61b1b; }
.tenant-users-page { background: #f4f8fc; box-sizing: border-box; min-height: 100vh; padding: 1.5rem; }
.tenant-users-card { background: white; border: 1px solid #dce7f2; border-radius: 1rem; margin: auto; max-width: 68rem; padding: 1.5rem; }
.tenant-selector, .tenant-section-title, .tenant-row { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem; margin: .75rem 0; }
.tenant-section-title { justify-content: space-between; margin-top: 2rem; }
.tenant-row { border-top: 1px solid #e6edf5; padding: .8rem 0; }
.profile-row-muted { background: #f1f4f7; opacity: .75; }.profile-readiness { color: #835c00; font-weight: 700; }
.tenant-row strong { min-width: 16rem; }.tenant-row span { flex: 1; }
.tenant-users-card input, .tenant-users-card select { border: 1px solid #aebfce; border-radius: .4rem; font: inherit; padding: .55rem; }
.tenant-users-card button { background: #0078d4; border: 0; border-radius: .4rem; color: white; cursor: pointer; padding: .55rem .75rem; }
.tenant-users-card button:disabled, .tenant-users-card button:disabled:hover { background: #7fa6bf; cursor: not-allowed; opacity: .6; }
.tenant-modal { align-items: center; background: rgba(8,37,68,.45); display: flex; inset: 0; justify-content: center; padding: 1rem; position: fixed; }
@media (max-width: 640px) { .tenant-row { align-items: stretch; flex-direction: column; }.tenant-row strong { min-width: 0; } }

body {
    background: #f4f8fc;
    color: #14283d;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    margin: 0;
}

a { color: #006fbe; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(0, 120, 212, .35);
    outline-offset: 2px;
}

.tyreflow-shell { min-height: 100vh; }
.tyreflow-shell-header {
    align-items: center;
    background: #102b46;
    box-shadow: 0 .15rem .5rem rgba(8, 37, 68, .16);
    color: #fff;
    display: flex;
    gap: 1rem;
    padding: .85rem max(1rem, calc((100% - 76rem) / 2));
}
.tyreflow-brand { color: #fff; font-size: 1.2rem; font-weight: 800; letter-spacing: .02em; text-decoration: none; }
.tyreflow-tenant-summary { display: grid; gap: .12rem; margin-right: auto; min-width: 0; }
.tyreflow-tenant-name { color: #d7edff; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tyreflow-user-email { color: #a9c0d4; font-size: .84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tyreflow-shell-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; }
.tyreflow-shell-link { color: #d7edff; font-size: .9rem; font-weight: 600; text-decoration: none; }
.tyreflow-shell-link:hover { color: #fff; text-decoration: underline; }
.tyreflow-logout, .account-primary-action {
    background: #087fd1;
    border: 1px solid transparent;
    border-radius: .5rem;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font: inherit;
    font-weight: 700;
    padding: .58rem .85rem;
    text-align: center;
    text-decoration: none;
}
.tyreflow-logout { background: transparent; border-color: #5a7995; }
.tyreflow-logout:hover { background: #1d4263; }
.account-primary-action:hover, .tenant-users-card button:hover { background: #0068b1; }
.tyreflow-shell-nav {
    background: #fff;
    border-bottom: 1px solid #dce7f2;
    display: flex;
    gap: .25rem;
    overflow-x: auto;
    padding: .55rem max(1rem, calc((100% - 76rem) / 2));
}
.tyreflow-shell-nav a { border-radius: .45rem; color: #29465f; font-size: .92rem; font-weight: 650; padding: .55rem .7rem; text-decoration: none; white-space: nowrap; }
.tyreflow-shell-nav a:hover, .tyreflow-shell-nav a:focus-visible { background: #e8f4fd; color: #006fbe; }

.account-page { align-items: center; display: flex; justify-content: center; }
.account-card h1 { color: #102b46; font-size: 1.65rem; }
.account-form label { color: #29465f; font-size: .92rem; font-weight: 700; }
.account-form input { box-sizing: border-box; width: 100%; }
.account-secondary-link { display: inline-block; margin-top: 1.2rem; }
.account-intro { color: #526a80; margin: 0 0 1.25rem; }
.account-loading { color: #526a80; }
.tenant-select-card { max-width: 34rem; }
.tenant-choice-list { display: grid; gap: .7rem; margin-top: 1.25rem; }
.tenant-choice {
    align-items: center;
    background: #fff;
    border: 1px solid #c9dbea;
    border-radius: .7rem;
    color: #14283d;
    cursor: pointer;
    display: flex;
    font: inherit;
    justify-content: space-between;
    padding: .9rem 1rem;
    text-align: left;
}
.tenant-choice:hover { background: #edf7ff; border-color: #087fd1; }
.tenant-choice span { font-weight: 750; }
.tenant-choice small { color: #526a80; font-weight: 700; }

.tenant-users-page { padding: 2rem max(1rem, calc((100% - 72rem) / 2)); }
.tenant-users-card { box-shadow: 0 .75rem 2.25rem rgba(8, 37, 68, .06); }
.tenant-users-card h1, .tenant-users-card h2 { color: #102b46; }
.tenant-users-card label { color: #29465f; font-size: .9rem; font-weight: 700; }
.tenant-users-card button { font: inherit; font-weight: 650; }
.tenant-selector { padding: .2rem 0; }
.tenant-row { gap: .85rem; }
.tenant-modal { z-index: 10; }
.file-picker-input {
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    width: 1px;
}
.file-picker-button {
    background: #e8f4fd;
    border: 1px solid #9cc8e8;
    border-radius: .4rem;
    color: #005e9e !important;
    cursor: pointer;
    padding: .52rem .7rem;
}
.file-picker-button:hover { background: #d8edfb; }
.file-picker-status { color: #526a80; font-size: .9rem; overflow-wrap: anywhere; }
.imports-page { display: grid; gap: 1rem; }.import-preview-card { max-width: 72rem; }.import-batch-row.selected { background: #edf7ff; margin-left: -.5rem; margin-right: -.5rem; padding-left: .5rem; padding-right: .5rem; }.import-batch-row > div, .preview-row > div { display: grid; flex: 1; gap: .2rem; min-width: 0; }.import-batch-row span, .preview-row span { color: #526a80; overflow-wrap: anywhere; }.preview-summary-grid { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.25rem 0; }.preview-summary-grid article { background: #edf7ff; border: 1px solid #c9dbea; border-radius: .7rem; display: grid; gap: .25rem; padding: .9rem; }.preview-summary-grid span { color: #29465f; font-size: .9rem; font-weight: 700; }.preview-summary-grid strong { color: #102b46; font-size: 1.7rem; }.preview-summary-grid .preview-summary-exceptions { background: #fff5df; border-color: #edd196; }.preview-controls { border-top: 1px solid #e6edf5; padding-top: 1rem; }.preview-row { align-items: center; border-top: 1px solid #e6edf5; display: flex; gap: .85rem; padding: .85rem 0; }.preview-badge { border-radius: 999px; display: inline-block; font-size: .8rem; font-weight: 750; padding: .18rem .5rem; }.preview-badge.new { background: #e8f7ef; color: #17633b; }.preview-badge.updated { background: #e8f4fd; color: #005e9e; }.preview-badge.unchanged { background: #edf0f3; color: #435365; }.preview-badge.ambiguous { background: #fff5df; color: #835c00; }.preview-badge.invalid { background: #fff0f0; color: #a61b1b; }.preview-detail { max-height: calc(100vh - 2rem); max-width: 48rem; overflow-y: auto; }.preview-detail-list { display: grid; gap: .35rem .8rem; grid-template-columns: minmax(9rem, 1fr) minmax(0, 2fr); }.preview-detail-list dt { color: #29465f; font-weight: 700; }.preview-detail-list dd { margin: 0; overflow-wrap: anywhere; }.preview-resolution-help { color: #526a80; font-size: .9rem; }

@media (max-width: 640px) {
    .tyreflow-shell-header {
        align-items: stretch;
        display: grid;
        gap: .75rem;
        grid-template-columns: minmax(0, 1fr);
        padding: .9rem 1rem;
    }

    .tyreflow-brand { justify-self: start; }

    .tyreflow-tenant-summary {
        margin-right: 0;
        min-width: 0;
    }

    .tyreflow-tenant-name,
    .tyreflow-user-email {
        overflow-wrap: anywhere;
        white-space: normal;
    }

    .tyreflow-shell-actions {
        justify-content: space-between;
        margin-left: 0;
        width: 100%;
    }

    .tyreflow-shell-nav {
        display: grid;
        gap: .35rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow-x: visible;
        padding: .6rem .7rem;
    }

    .tyreflow-shell-nav a {
        text-align: center;
        white-space: normal;
    }

    .tenant-users-page { padding: 1rem; }
    .tenant-users-card { padding: 1rem; }
    .tenant-selector { align-items: stretch; }
    .tenant-selector input,
    .tenant-selector select {
        box-sizing: border-box;
        max-width: 100%;
        width: 100%;
    }
    .preview-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.preview-row { align-items: stretch; flex-direction: column; }.preview-detail-list { grid-template-columns: 1fr; }
}
.import-profile-header-options {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    margin: .75rem 0 .25rem;
}

.import-profile-header-toggle {
    align-items: center;
    display: flex;
    gap: .45rem;
}

.import-profile-header-toggle input {
    margin: 0;
}

.import-profile-header-row {
    display: grid;
    gap: .35rem;
    min-width: 12rem;
}

.import-profile-header-row input {
    box-sizing: border-box;
    width: 100%;
}

.import-profile-help {
    color: #526a80;
    margin: .25rem 0 .75rem;
}

@media (max-width: 640px) {
    .import-profile-header-options {
        align-items: stretch;
        flex-direction: column;
    }

    .import-profile-header-row {
        min-width: 0;
    }
}
