/* Blazor-specific utility styles */

#blazor-error-ui {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid oklch(var(--color-success));
}

.invalid {
    outline: 1px solid oklch(var(--color-error));
}

.validation-message {
    color: oklch(var(--color-error));
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

/* Account settings use DaisyUI theme tokens so the copied settings UI stays readable in both themes. */
:root[data-theme="corporate"] .account-settings {
    color-scheme: light;
}

:root[data-theme="business"] .account-settings {
    color-scheme: dark;
}

.account-settings :is(.input, .select, .textarea) {
    background-color: oklch(var(--color-base-100));
    border-color: oklch(var(--color-base-content) / 0.18);
    color: oklch(var(--color-base-content));
}

.account-settings :is(.input, .select, .textarea):focus,
.account-settings :is(.input, .select, .textarea):focus-within {
    border-color: oklch(var(--color-primary));
    outline: 2px solid oklch(var(--color-primary) / 0.18);
    outline-offset: 0;
}

.account-settings :is(.input, .textarea)::placeholder {
    color: oklch(var(--color-base-content) / 0.45);
}

.account-settings :is(.input, .select, .textarea):disabled {
    background-color: oklch(var(--color-base-200));
    color: oklch(var(--color-base-content) / 0.45);
}

.account-settings section {
    border-radius: 0.875rem;
}

.account-settings .table :is(th, td) {
    border-color: oklch(var(--color-base-content) / 0.08);
    color: oklch(var(--color-base-content));
}

/* Workout library surfaces follow DaisyUI theme tokens in both corporate/business themes. */
:root[data-theme="corporate"] .workout-library {
    color-scheme: light;
}

:root[data-theme="business"] .workout-library {
    color-scheme: dark;
}

.workout-library :is(.input, .select, .textarea) {
    background-color: oklch(var(--color-base-100));
    border-color: oklch(var(--color-base-content) / 0.18);
    color: oklch(var(--color-base-content));
}

.workout-library :is(.input, .select, .textarea):focus,
.workout-library :is(.input, .select, .textarea):focus-within {
    border-color: oklch(var(--color-primary));
    outline: 2px solid oklch(var(--color-primary) / 0.18);
    outline-offset: 0;
}

.workout-library :is(.input, .textarea)::placeholder {
    color: oklch(var(--color-base-content) / 0.45);
}

.workout-library .modal-box {
    background-color: oklch(var(--color-base-100));
    color: oklch(var(--color-base-content));
    border: 1px solid oklch(var(--color-base-content) / 0.12);
}

/* Bootstrap color utility shims — keeps Blazor validation classes working */
.text-danger    { color: oklch(var(--color-error)); }
.text-success   { color: oklch(var(--color-success)); }
.text-info      { color: oklch(var(--color-info)); }
.text-warning   { color: oklch(var(--color-warning)); }
.text-secondary { color: oklch(var(--color-base-content) / 0.6); }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbmsgPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvdmVyZmxvdz0iaGlkZGVuIj48ZGVmcz48Y2xpcFBhdGggaWQ9ImNsaXAwIj48cmVjdCB4PSIyMzUiIHk9IjUxIiB3aWR0aD0iNTYiIGhlaWdodD0iNDkiLz48L2NsaXBQYXRoPjwvZGVmcz48ZyBjbGlwLXBhdGg9InVybCgjY2xpcDApIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjM1IC01MSkiPjxwYXRoIGQ9Ik0yNjMuNTA2IDUxQzI2NC43MTcgNTEgMjY1LjgxMyA1MS40ODM3IDI2Ni42MDYgNTIuMjY1OEwyNjcuMDUyIDUyLjc5ODcgMjY3LjUzOSA1My42MjgzIDI5MC4xODUgOTIuMTgzMSAyOTAuNTQ1IDkyLjc5NSAyOTAuNjU2IDkyLjk5NkMyOTAuODc3IDkzLjUxMyAyOTEgOTQuMDgxNSAyOTEgOTQuNjc4MiAyOTEgOTcuMDY1MSAyODkuMDM4IDk5IDI4Ni42MTcgOTlMMjQwLjM4MyA5OUMyMzcuOTYzIDk5IDIzNiA5Ny4wNjUxIDIzNiA5NC42NzgyIDIzNiA5NC4zNzk5IDIzNi4wMzEgOTQuMDg4NiAyMzYuMDg5IDkzLjgwNzJMMjM2LjMzOCA5My4wMTYyIDIzNi44NTggOTIuMTMxNCAyNTkuNDczIDUzLjYyOTQgMjU5Ljk2MSA1Mi43OTg1IDI2MC40MDcgNTIuMjY1OEMyNjEuMiA1MS40ODM3IDI2Mi4yOTYgNTEgMjYzLjUwNiA1MVpNMjYzLjU4NiA2Ni4wMTgzQzI2MC43MzcgNjYuMDE4MyAyNTkuMzEzIDY3LjEyNDUgMjU5LjMxMyA2OS4zMzcgMjU5LjMxMyA2OS42MTAyIDI1OS4zMzIgNjkuODYwOCAyNTkuMzcxIDcwLjA4ODdMMjYxLjc5NSA4NC4wMTYxIDI2NS4zOCA4NC4wMTYxIDI2Ny44MjEgNjkuNzQ3NUMyNjcuODYgNjkuNzMwOSAyNjcuODc5IDY5LjU4NzcgMjY3Ljg3OSA2OS4zMTc5IDI2Ny44NzkgNjcuMTE4MiAyNjYuNDQ4IDY2LjAxODMgMjYzLjU4NiA2Ni4wMTgzWk0yNjMuNTc2IDg2LjA1NDdDMjYxLjA0OSA4Ni4wNTQ3IDI1OS43ODYgODcuMzAwNSAyNTkuNzg2IDg5Ljc5MjEgMjU5Ljc4NiA5Mi4yODM3IDI2MS4wNDkgOTMuNTI5NSAyNjMuNTc2IDkzLjUyOTUgMjY2LjExNiA5My41Mjk1IDI2Ny4zODcgOTIuMjgzNyAyNjcuMzg3IDg5Ljc5MjEgMjY3LjM4NyA4Ny4zMDA1IDI2Ni4xMTYgODYuMDU0NyAyNjMuNTc2IDg2LjA1NDdaIiBmaWxsPSIjRkZFNTAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PC9zdmc+) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }
