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;
}

/* ---------------------------------------------------------------------------
   Admin utility classes.

   The compiled Tailwind stylesheet (styles-BkQIY2Y6.css) was generated from
   the public marketing site and never re-scanned the Admin pages, so the
   utility classes the Admin components rely on were never emitted. The most
   damaging gap was the dark page background (bg-[#0e0e12]): without it the
   admin wrapper stayed transparent and showed the body's light cream
   background (--background:#faf3e0), while text-chrome (#f2f0eb, near-white)
   rendered on top — light text on a light background, i.e. invisible.

   This block supplies exactly the missing utilities used by the Admin/*
   components. It loads after the compiled stylesheet, and these selectors do
   not exist there, so nothing is overridden. Conventions (oklab color-mix for
   opacity, --spacing scale, 40/48/64rem breakpoints) mirror the Tailwind v4
   output so the look stays consistent. If the Tailwind build is ever
   regenerated with the Admin pages in its content scan, this block becomes
   redundant and can be removed.
--------------------------------------------------------------------------- */

/* Backgrounds */
.bg-\[\#0e0e12\] { background-color: #0e0e12; }
.bg-black\/40    { background-color: color-mix(in oklab, #000 40%, transparent); }
.bg-black\/50    { background-color: color-mix(in oklab, #000 50%, transparent); }

/* Text colors */
.text-green-400    { color: #4ade80; }
.text-yellow-400   { color: #facc15; }
.text-yellow-300\/80 { color: color-mix(in oklab, #fde047 80%, transparent); }
.text-chrome\/40   { color: color-mix(in oklab, var(--color-chrome) 40%, transparent); }
.text-chrome\/50   { color: color-mix(in oklab, var(--color-chrome) 50%, transparent); }
.text-chrome\/60   { color: color-mix(in oklab, var(--color-chrome) 60%, transparent); }
.text-chrome\/70   { color: color-mix(in oklab, var(--color-chrome) 70%, transparent); }
.text-chrome\/80   { color: color-mix(in oklab, var(--color-chrome) 80%, transparent); }

/* Border colors (used alongside the existing `border` width utility) */
.border-white\/5    { border-color: color-mix(in oklab, #fff 5%, transparent); }
.border-white\/10   { border-color: color-mix(in oklab, #fff 10%, transparent); }
.border-white\/20   { border-color: color-mix(in oklab, #fff 20%, transparent); }
.border-red-500\/40 { border-color: color-mix(in oklab, #ef4444 40%, transparent); }

/* Sizing */
.max-w-6xl       { max-width: 72rem; }
.max-w-sm        { max-width: 24rem; }
.max-w-\[160px\] { max-width: 160px; }
.max-w-\[260px\] { max-width: 260px; }
.max-w-\[320px\] { max-width: 320px; }
.max-h-96        { max-height: 24rem; }

/* Spacing */
.py-10  { padding-top: calc(var(--spacing) * 10); padding-bottom: calc(var(--spacing) * 10); }
.py-2\.5 { padding-top: calc(var(--spacing) * 2.5); padding-bottom: calc(var(--spacing) * 2.5); }
.py-0\.5 { padding-top: calc(var(--spacing) * 0.5); padding-bottom: calc(var(--spacing) * 0.5); }
.space-y-1 > :not([hidden]) ~ :not([hidden]) { margin-top: calc(var(--spacing) * 1); }
.space-y-8 > :not([hidden]) ~ :not([hidden]) { margin-top: calc(var(--spacing) * 8); }

/* Typography */
.text-\[10px\]        { font-size: 10px; }
.text-\[11px\]        { font-size: 11px; }
.tracking-\[0\.15em\] { letter-spacing: 0.15em; }
.truncate            { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.whitespace-pre-wrap { white-space: pre-wrap; }
.align-top           { vertical-align: top; }
.inline              { display: inline; }

/* States */
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:border-primary:focus { border-color: var(--color-primary); }
.disabled\:opacity-50:disabled { opacity: 0.5; }
.hover\:text-primary:hover    { color: var(--color-primary); }
.hover\:brightness-110:hover  { filter: brightness(1.1); }
.hover\:bg-white\/5:hover     { background-color: color-mix(in oklab, #fff 5%, transparent); }
.hover\:bg-white\/10:hover    { background-color: color-mix(in oklab, #fff 10%, transparent); }
.hover\:bg-red-500\/10:hover  { background-color: color-mix(in oklab, #ef4444 10%, transparent); }

/* Responsive grids */
@media (min-width: 40rem) {

    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 48rem) {

    .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 64rem) {

    .lg\:grid-cols-\[1fr_1\.2fr\] { grid-template-columns: 1fr 1.2fr; }
}