.is-hidden {
    display: none;
}

.valid.modified:not([type=checkbox]) {
    outline: var(--border-width-xs) solid var(--success-primary);
    background-color: var(--success-light);
}

.invalid {
    outline: var(--border-width-xs) solid var(--error-primary);
    background-color: var(--error-light);
}

.validation-message {
    color: var(--error-primary);
    font-size: var(--font-size-body-s);
    margin-top: var(--space-xs);
}

.blazor-error-boundary {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
}

.blazor-error-boundary::after {
    content: none;
}

.ai-error-ui {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: var(--space-6);
    background: var(--modal-overlay);
    backdrop-filter: blur(var(--glass-blur-xs));
    -webkit-backdrop-filter: blur(var(--glass-blur-xs));
    z-index: var(--z-modal);
}

.ai-error-toast {
    width: 100%;
    max-width: var(--layout-chat-main-max-width);
    background: var(--panel-bg);
    border: var(--border-width-xs) solid var(--panel-border);
    border-radius: var(--radius-base);
    box-shadow: var(--panel-shadow);
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    color: var(--text-primary);
}

.ai-error-toast__header {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
}

.ai-error-toast__icon {
    width: var(--space-10);
    height: var(--space-10);
    border-radius: var(--radius-circle);
    background: var(--error-light);
    color: var(--error-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ai-error-toast__icon svg {
    width: var(--space-5);
    height: var(--space-5);
}

.ai-error-toast__copy {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ai-error-toast__title {
    margin: 0;
    font-size: var(--font-size-body-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--text-primary);
}

.ai-error-toast__message {
    margin: 0;
    font-size: var(--font-size-body-md);
    color: var(--text-secondary);
}

.ai-error-toast__details {
    margin: 0;
    padding: var(--space-3);
    border-radius: var(--radius-base);
    background: var(--background-secondary);
    border: var(--border-width-xs) solid var(--border-soft);
    color: var(--text-tertiary);
    font-family: var(--font-family-mono);
    font-size: var(--font-size-body-xs);
    display: none;
    white-space: pre-wrap;
    word-break: break-word;
}

.ai-error-toast__dismiss {
    margin-left: auto;
    width: var(--space-8);
    height: var(--space-8);
    border-radius: var(--radius-circle);
    border: none;
    background: transparent;
    color: var(--text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.ai-error-toast__dismiss:hover {
    background: var(--background-secondary);
    color: var(--text-primary);
}

.ai-error-toast__actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
}

.ai-error-toast__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-base);
    font-size: var(--font-size-body-s);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
    border: var(--border-width-xs) solid transparent;
    cursor: pointer;
}

.ai-error-toast__button--primary {
    background: var(--button-primary-bg);
    color: var(--button-primary-text);
}

.ai-error-toast__button--primary:hover {
    background: var(--button-primary-hover);
}

@media (max-width: 48rem) {
    .ai-error-toast {
        padding: var(--space-4);
    }

    .ai-error-toast__header {
        flex-direction: column;
    }

    .ai-error-toast__dismiss {
        margin-left: 0;
        align-self: flex-end;
    }
}
